from __future__ import annotations
import typing
from typing import Any
from enum import IntEnum, IntFlag


class PositionUnitType(IntEnum):
    PixelsFromLeft = 0
    PixelsFromTop = 1
    PercentageWidth = 2
    PercentageHeight = 3
    PixelsFromRight = 4
    PixelsFromBottom = 5
    PixelsFromCenterX = 6
    PixelsFromCenterY = 7
    PixelsFromCenterYInverted = 8
    PixelsFromBaseline = 9

class ReferenceType(IntEnum):
    InstanceOfType = 0
    ElementOfType = 1
    ContainedTypeInList = 2
    VariableReference = 3

class TypedElementReference(typing.Any):
    @property
    def OwnerOfReferencingObject(self) -> Any: ...
    @OwnerOfReferencingObject.setter
    def OwnerOfReferencingObject(self, value: Any) -> None: ...
    @property
    def StateSave(self) -> Any: ...
    @StateSave.setter
    def StateSave(self, value: Any) -> None: ...
    @property
    def ReferencingObject(self) -> Any: ...
    @ReferencingObject.setter
    def ReferencingObject(self, value: Any) -> None: ...
    @property
    def ReferenceType(self) -> Any: ...
    @ReferenceType.setter
    def ReferenceType(self, value: Any) -> None: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class IObjectFinder(typing.Any):
    @property
    def GumProjectSave(self) -> Any: ...
    def GetElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetBaseElements(self, *args: Any, **kwargs: Any) -> Any: ...

class ObjectFinder(typing.Any):
    @property
    def Self(self) -> Any: ...
    @property
    def GumProjectSave(self) -> Any: ...
    @GumProjectSave.setter
    def GumProjectSave(self, value: Any) -> None: ...
    def ForceResetCache(self, *args: Any, **kwargs: Any) -> Any: ...
    def EnableCache(self, *args: Any, **kwargs: Any) -> Any: ...
    def DisableCache(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetScreen(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetComponent(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetComponent(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetStandardElement(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsReferencing(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsReferencing(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsReferencingRecursively(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetBehaviorContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsReferencing(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootStandardElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootStandardElementSave(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsInheritingFrom(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetBaseElements(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetAllFilesInProject(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetFilesReferencedBy(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetInstanceRecursively(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetDefaultChildName(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetBehavior(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetBehavior(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementReferencesToThis(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementsReferencedByThis(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootVariable(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootVariableList(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootVariableList(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetRootVariable(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetElementContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetStateContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetContainerOf(self, *args: Any, **kwargs: Any) -> Any: ...
    def IsVariableOrphaned(self, *args: Any, **kwargs: Any) -> Any: ...
    def IsInstanceRecursivelyReferencingElement(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class InstanceExtensionMethods(typing.Any):
    @staticmethod
    def GetBaseElementSave(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def GetParentInstance(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def GetSiblingsIncludingThis(*args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class ObjectFinderExt(typing.Any):
    @staticmethod
    def IsProjectSaved(*args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class TextureAddress(IntEnum):
    EntireTexture = 0
    Custom = 1
    DimensionsBased = 2

class ChildrenLayout(IntEnum):
    Regular = 0
    TopToBottomStack = 1
    LeftToRightStack = 2
    AutoGridHorizontal = 3
    AutoGridVertical = 4

class StandardElementsManager(typing.Any):
    @property
    def DefaultTypes(self) -> Any: ...
    @property
    def Self(self) -> Any: ...
    @property
    def DefaultType(self) -> Any: ...
    @property
    def DefaultStates(self) -> Any: ...
    def Initialize(self, *args: Any, **kwargs: Any) -> Any: ...
    def RefreshDefaults(self, *args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def AddClipsChildren(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def AddEventVariables(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def AddColorVariables(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def AddDimensionsVariables(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def AddPositioningVariables(*args: Any, **kwargs: Any) -> Any: ...
    def GetDefaultStateFor(self, *args: Any, **kwargs: Any) -> Any: ...
    def IsDefaultType(self, *args: Any, **kwargs: Any) -> Any: ...
    def PopulateProjectWithDefaultStandards(self, *args: Any, **kwargs: Any) -> Any: ...
    def AddStandardElementSaveInstance(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass19_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass26_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass30_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass38_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass42_0(typing.Any):
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass46_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass48_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass52_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <>c__DisplayClass1_0(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class DimensionVariableAction(IntEnum):
    ExcludeFileOptions = 0
    AllowFileOptions = 1
    DefaultToPercentageOfFile = 2

class <>c(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...

class <get_DefaultTypes>d__5(typing.Any):
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...
