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


class Back(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Bounce(typing.Any):
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Circular(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Cubic(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Elastic(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Exponential(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Instant(typing.Any):
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Linear(typing.Any):
    @staticmethod
    def EaseNone(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Quadratic(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Quartic(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Quintic(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 Sinusoidal(typing.Any):
    @staticmethod
    def EaseIn(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseOut(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def EaseInOut(*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 TweeningFunction(typing.Any):
    @property
    def Target(self) -> Any: ...
    @property
    def Method(self) -> Any: ...
    def Invoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def BeginInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def EndInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetObjectData(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetInvocationList(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...
    def Clone(self, *args: Any, **kwargs: Any) -> Any: ...
    def DynamicInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...

class InterpolationType(IntEnum):
    Back = 0
    Bounce = 1
    Circular = 2
    Cubic = 3
    Elastic = 4
    Exponential = 5
    Instant = 6
    Linear = 7
    Quadratic = 8
    Quartic = 9
    Quintic = 10
    Sinusoidal = 11

class Easing(IntEnum):
    In = 0
    Out = 1
    InOut = 2

class Tweener(typing.Any):
    @property
    def Position(self) -> Any: ...
    @Position.setter
    def Position(self, value: Any) -> None: ...
    @property
    def Duration(self) -> Any: ...
    @Duration.setter
    def Duration(self, value: Any) -> None: ...
    @property
    def elapsed(self) -> Any: ...
    @elapsed.setter
    def elapsed(self, value: Any) -> None: ...
    @property
    def Running(self) -> Any: ...
    @Running.setter
    def Running(self, value: Any) -> None: ...
    @property
    def Owner(self) -> Any: ...
    @Owner.setter
    def Owner(self, value: Any) -> None: ...
    @staticmethod
    def GetInterpolationFunction(*args: Any, **kwargs: Any) -> Any: ...
    def Update(self, *args: Any, **kwargs: Any) -> Any: ...
    def Start(self, *args: Any, **kwargs: Any) -> Any: ...
    def Start(self, *args: Any, **kwargs: Any) -> Any: ...
    def Stop(self, *args: Any, **kwargs: Any) -> Any: ...
    def Reset(self, *args: Any, **kwargs: Any) -> Any: ...
    def Reset(self, *args: Any, **kwargs: Any) -> Any: ...
    def Reverse(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 PositionChangedHandler(typing.Any):
    @property
    def Target(self) -> Any: ...
    @property
    def Method(self) -> Any: ...
    def Invoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def BeginInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def EndInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetObjectData(self, *args: Any, **kwargs: Any) -> Any: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetInvocationList(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self, *args: Any, **kwargs: Any) -> Any: ...
    def Clone(self, *args: Any, **kwargs: Any) -> Any: ...
    def DynamicInvoke(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetType(self, *args: Any, **kwargs: Any) -> Any: ...
    def ToString(self, *args: Any, **kwargs: Any) -> Any: ...
