from __future__ import annotations
import usdrt.Rt._Rt
import typing
import usdrt.Gf._Gf
import usdrt.Sdf._Sdf
import usdrt.Usd._Usd

__all__ = [
    "Boundable",
    "ChangeTracker",
    "Tokens",
    "Xformable"
]


class Boundable(Xformable):
    def ClearWorldExtent(self) -> bool: ...
    def CreateWorldExtentAttr(self, defaultValue: usdrt.Gf._Gf.Range3d = Gf.Range3d(Gf.Vec3d(0.0, 0.0, 0.0), Gf.Vec3d(0.0, 0.0, 0.0))) -> usdrt.Usd._Usd.Attribute: ...
    def GetWorldExtentAttr(self) -> usdrt.Usd._Usd.Attribute: ...
    def HasWorldExtent(self) -> bool: ...
    def SetWorldExtentFromUsd(self) -> bool: ...
    def __init__(self, prim: usdrt.Usd._Usd.Prim = Prim(invalid)) -> None: ...
    def __repr__(self) -> str: ...
    pass
class ChangeTracker():
    @typing.overload
    def AttributeChanged(self, attr: usdrt.Usd._Usd.Attribute) -> bool: ...
    @typing.overload
    def AttributeChanged(self, attrPath: usdrt.Sdf._Sdf.Path) -> bool: ...
    def ClearChanges(self) -> None: ...
    def GetAllChangedAttributes(self) -> typing.List[usdrt.Sdf._Sdf.Path]: ...
    def GetAllChangedPrims(self) -> typing.List[usdrt.Sdf._Sdf.Path]: ...
    @typing.overload
    def GetChangedAttributes(self, prim: usdrt.Usd._Usd.Prim) -> typing.List[TfToken]: ...
    @typing.overload
    def GetChangedAttributes(self, primPath: usdrt.Sdf._Sdf.Path) -> typing.List[TfToken]: ...
    def GetTrackedAttributes(self) -> typing.List[TfToken]: ...
    def HasChanges(self) -> bool: ...
    def IsChangeTrackingPaused(self) -> bool: ...
    def IsTrackingAttribute(self, attrName: TfToken) -> bool: ...
    def PauseTracking(self) -> None: ...
    @typing.overload
    def PrimChanged(self, prim: usdrt.Usd._Usd.Prim) -> bool: ...
    @typing.overload
    def PrimChanged(self, primPath: usdrt.Sdf._Sdf.Path) -> bool: ...
    def ResumeTracking(self) -> None: ...
    def StopTrackingAttribute(self, attrName: TfToken) -> None: ...
    def TrackAttribute(self, attrName: TfToken) -> None: ...
    def __init__(self, arg0: usdrt.Usd._Usd.Stage) -> None: ...
    pass
class Tokens():
    localMatrix = '_localMatrix'
    worldExtent = '_worldExtent'
    worldOrientation = '_worldOrientation'
    worldPosition = '_worldPosition'
    worldScale = '_worldScale'
    pass
class Xformable():
    def ClearLocalXform(self) -> bool: ...
    def ClearWorldXform(self) -> bool: ...
    def CreateLocalMatrixAttr(self, defaultValue: usdrt.Gf._Gf.Matrix4d = Gf.Matrix4d(1.0, 0.0, 0.0, 0.0,  0.0, 1.0, 0.0, 0.0,  0.0, 0.0, 1.0, 0.0,  0.0, 0.0, 0.0, 1.0)) -> usdrt.Usd._Usd.Attribute: ...
    def CreateWorldOrientationAttr(self, defaultValue: usdrt.Gf._Gf.Quatf = Gf.Quatf(0.0, Gf.Vec3f(0.0, 0.0, 0.0))) -> usdrt.Usd._Usd.Attribute: ...
    def CreateWorldPositionAttr(self, defaultValue: usdrt.Gf._Gf.Vec3d = Gf.Vec3d(0.0, 0.0, 0.0)) -> usdrt.Usd._Usd.Attribute: ...
    def CreateWorldScaleAttr(self, defaultValue: usdrt.Gf._Gf.Vec3f = Gf.Vec3f(0.0, 0.0, 0.0)) -> usdrt.Usd._Usd.Attribute: ...
    def GetLocalMatrixAttr(self) -> usdrt.Usd._Usd.Attribute: ...
    def GetPath(self) -> usdrt.Sdf._Sdf.Path: ...
    def GetPrim(self) -> usdrt.Usd._Usd.Prim: ...
    def GetWorldOrientationAttr(self) -> usdrt.Usd._Usd.Attribute: ...
    def GetWorldPositionAttr(self) -> usdrt.Usd._Usd.Attribute: ...
    def GetWorldScaleAttr(self) -> usdrt.Usd._Usd.Attribute: ...
    def HasLocalXform(self) -> bool: ...
    def HasWorldXform(self) -> bool: ...
    def SetLocalXformFromUsd(self) -> bool: ...
    def SetWorldXformFromUsd(self) -> bool: ...
    def __bool__(self) -> bool: ...
    def __init__(self, prim: usdrt.Usd._Usd.Prim = Prim(invalid)) -> None: ...
    def __repr__(self) -> str: ...
    pass
