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


class IAnimatable(typing.Any):
    def AnimateSelf(self, *args: Any, **kwargs: Any) -> Any: ...

class InvisibleRenderable(typing.Any):
    @property
    def IsRenderTarget(self) -> Any: ...
    @IsRenderTarget.setter
    def IsRenderTarget(self, value: Any) -> None: ...
    @property
    def AbsoluteVisible(self) -> Any: ...
    @property
    def BlendState(self) -> Any: ...
    @BlendState.setter
    def BlendState(self, value: Any) -> None: ...
    @property
    def Children(self) -> Any: ...
    @property
    def ClipsChildren(self) -> Any: ...
    @ClipsChildren.setter
    def ClipsChildren(self, value: Any) -> None: ...
    @property
    def Height(self) -> Any: ...
    @Height.setter
    def Height(self, value: Any) -> None: ...
    @property
    def Name(self) -> Any: ...
    @Name.setter
    def Name(self, value: Any) -> None: ...
    @property
    def Parent(self) -> Any: ...
    @Parent.setter
    def Parent(self, value: Any) -> None: ...
    @property
    def Rotation(self) -> Any: ...
    @Rotation.setter
    def Rotation(self, value: Any) -> None: ...
    @property
    def Tag(self) -> Any: ...
    @Tag.setter
    def Tag(self, value: Any) -> None: ...
    @property
    def Visible(self) -> Any: ...
    @Visible.setter
    def Visible(self, value: Any) -> None: ...
    @property
    def Width(self) -> Any: ...
    @Width.setter
    def Width(self, value: Any) -> None: ...
    @property
    def Wrap(self) -> Any: ...
    @property
    def X(self) -> Any: ...
    @X.setter
    def X(self, value: Any) -> None: ...
    @property
    def Y(self) -> Any: ...
    @Y.setter
    def Y(self, value: Any) -> None: ...
    @property
    def Z(self) -> Any: ...
    @Z.setter
    def Z(self, value: Any) -> None: ...
    @property
    def FlipHorizontal(self) -> Any: ...
    @FlipHorizontal.setter
    def FlipHorizontal(self, value: Any) -> None: ...
    @property
    def Alpha(self) -> Any: ...
    @Alpha.setter
    def Alpha(self, value: Any) -> None: ...
    def PreRender(self, *args: Any, **kwargs: Any) -> Any: ...
    def Render(self, *args: Any, **kwargs: Any) -> Any: ...
    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 IRenderable(typing.Any):
    @property
    def BlendState(self) -> Any: ...
    @property
    def Wrap(self) -> Any: ...
    def Render(self, *args: Any, **kwargs: Any) -> Any: ...
    def PreRender(self, *args: Any, **kwargs: Any) -> Any: ...

class IRenderer(typing.Any):
    @property
    def Camera(self) -> Any: ...
    @property
    def Layers(self) -> Any: ...
    @property
    def MainLayer(self) -> Any: ...
    def RenderLayer(self, *args: Any, **kwargs: Any) -> Any: ...

class ISetClipsChildren(typing.Any):
    @property
    def ClipsChildren(self) -> Any: ...
    @ClipsChildren.setter
    def ClipsChildren(self, value: Any) -> None: ...

class IText(typing.Any):
    @property
    def DescenderHeight(self) -> Any: ...
    @property
    def FontScale(self) -> Any: ...
    @property
    def WrappedTextWidth(self) -> Any: ...
    @property
    def WrappedTextHeight(self) -> Any: ...
    @property
    def RawText(self) -> Any: ...
    @RawText.setter
    def RawText(self, value: Any) -> None: ...
    @property
    def Width(self) -> Any: ...
    @Width.setter
    def Width(self, value: Any) -> None: ...
    @property
    def TextOverflowVerticalMode(self) -> Any: ...
    @TextOverflowVerticalMode.setter
    def TextOverflowVerticalMode(self, value: Any) -> None: ...
    def SetNeedsRefreshToTrue(self, *args: Any, **kwargs: Any) -> Any: ...
    def UpdatePreRenderDimensions(self, *args: Any, **kwargs: Any) -> Any: ...

class ITextureCoordinate(typing.Any):
    @property
    def SourceRectangle(self) -> Any: ...
    @SourceRectangle.setter
    def SourceRectangle(self, value: Any) -> None: ...
    @property
    def Wrap(self) -> Any: ...
    @Wrap.setter
    def Wrap(self, value: Any) -> None: ...
    @property
    def TextureWidth(self) -> Any: ...
    @property
    def TextureHeight(self) -> Any: ...
    @property
    def FlipHorizontal(self) -> Any: ...
    @FlipHorizontal.setter
    def FlipHorizontal(self, value: Any) -> None: ...

class NineSliceSections(IntEnum):
    TopLeft = 0
    Top = 1
    TopRight = 2
    Left = 3
    Center = 4
    Right = 5
    BottomLeft = 6
    Bottom = 7
    BottomRight = 8

class NineSliceExtensions(typing.Any):
    @property
    def PossibleNineSliceEndings(self) -> Any: ...
    @PossibleNineSliceEndings.setter
    def PossibleNineSliceEndings(self, value: Any) -> None: ...
    @staticmethod
    def GetIfShouldUsePattern(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def GetBareTextureForNineSliceTexture(*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 RendererSettings(typing.Any):
    @property
    def UseCustomEffectRendering(self) -> Any: ...
    @UseCustomEffectRendering.setter
    def UseCustomEffectRendering(self, value: Any) -> None: ...
    @property
    def UseBasicEffectRendering(self) -> Any: ...
    @UseBasicEffectRendering.setter
    def UseBasicEffectRendering(self, value: Any) -> None: ...
    @property
    def UsingEffect(self) -> 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 ColorOperation(IntEnum):
    Modulate = 3
    ColorTextureAlpha = 6

class IAspectRatio(typing.Any):
    @property
    def AspectRatio(self) -> Any: ...

class IRenderableIpso(typing.Any):
    @property
    def IsRenderTarget(self) -> Any: ...
    @property
    def Alpha(self) -> Any: ...
    @property
    def ClipsChildren(self) -> Any: ...
    @property
    def Parent(self) -> Any: ...
    @Parent.setter
    def Parent(self, value: Any) -> None: ...
    @property
    def Children(self) -> Any: ...
    @property
    def ColorOperation(self) -> Any: ...
    def SetParentDirect(self, *args: Any, **kwargs: Any) -> Any: ...

class LayerCameraSettings(typing.Any):
    @property
    def IsInScreenSpace(self) -> Any: ...
    @IsInScreenSpace.setter
    def IsInScreenSpace(self, value: Any) -> None: ...
    @property
    def Zoom(self) -> Any: ...
    @Zoom.setter
    def Zoom(self, value: Any) -> None: ...
    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 Layer(typing.Any):
    @property
    def ScissorIpso(self) -> Any: ...
    @ScissorIpso.setter
    def ScissorIpso(self, value: Any) -> None: ...
    @property
    def LayerCameraSettings(self) -> Any: ...
    @LayerCameraSettings.setter
    def LayerCameraSettings(self, value: Any) -> None: ...
    @property
    def Name(self) -> Any: ...
    @Name.setter
    def Name(self, value: Any) -> None: ...
    @property
    def Renderables(self) -> Any: ...
    @property
    def ParentLayer(self) -> Any: ...
    @ParentLayer.setter
    def ParentLayer(self, value: Any) -> None: ...
    @property
    def SecondarySortOnY(self) -> Any: ...
    @SecondarySortOnY.setter
    def SecondarySortOnY(self, value: Any) -> None: ...
    @property
    def IsLinearFilteringEnabled(self) -> Any: ...
    @IsLinearFilteringEnabled.setter
    def IsLinearFilteringEnabled(self, value: Any) -> None: ...
    def Add(self, *args: Any, **kwargs: Any) -> Any: ...
    def Remove(self, *args: Any, **kwargs: Any) -> Any: ...
    def SortRenderables(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def ContainsRenderable(self, *args: Any, **kwargs: Any) -> Any: ...
    def ScreenToWorld(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 GradientType(IntEnum):
    Linear = 0
    Radial = 1

class IVisible(typing.Any):
    @property
    def Visible(self) -> Any: ...
    @Visible.setter
    def Visible(self, value: Any) -> None: ...
    @property
    def AbsoluteVisible(self) -> Any: ...
    @property
    def Parent(self) -> Any: ...

class SortableLayer(typing.Any):
    @property
    def Wrap(self) -> Any: ...
    @property
    def BlendState(self) -> Any: ...
    @property
    def Z(self) -> Any: ...
    @Z.setter
    def Z(self, value: Any) -> None: ...
    @property
    def ScissorIpso(self) -> Any: ...
    @ScissorIpso.setter
    def ScissorIpso(self, value: Any) -> None: ...
    @property
    def LayerCameraSettings(self) -> Any: ...
    @LayerCameraSettings.setter
    def LayerCameraSettings(self, value: Any) -> None: ...
    @property
    def Name(self) -> Any: ...
    @Name.setter
    def Name(self, value: Any) -> None: ...
    @property
    def Renderables(self) -> Any: ...
    @property
    def ParentLayer(self) -> Any: ...
    @ParentLayer.setter
    def ParentLayer(self, value: Any) -> None: ...
    @property
    def SecondarySortOnY(self) -> Any: ...
    @SecondarySortOnY.setter
    def SecondarySortOnY(self, value: Any) -> None: ...
    @property
    def IsLinearFilteringEnabled(self) -> Any: ...
    @IsLinearFilteringEnabled.setter
    def IsLinearFilteringEnabled(self, value: Any) -> None: ...
    def Render(self, *args: Any, **kwargs: Any) -> Any: ...
    def Add(self, *args: Any, **kwargs: Any) -> Any: ...
    def Remove(self, *args: Any, **kwargs: Any) -> Any: ...
    def SortRenderables(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
    def ContainsRenderable(self, *args: Any, **kwargs: Any) -> Any: ...
    def ScreenToWorld(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 TextOverflowHorizontalMode(IntEnum):
    TruncateWord = 0
    EllipsisLetter = 1

class TextOverflowVerticalMode(IntEnum):
    SpillOver = 0
    TruncateLine = 1

class VerticalAlignment(IntEnum):
    Top = 0
    Center = 1
    Bottom = 2
    TextBaseline = 3

class HorizontalAlignment(IntEnum):
    Left = 0
    Center = 1
    Right = 2

class HorizontalAlignmentExtensionMethods(typing.Any):
    @staticmethod
    def Flip(*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: ...
