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


class GeneralUnitType(IntEnum):
    PixelsFromSmall = 0
    PixelsFromLarge = 1
    PixelsFromMiddle = 2
    Percentage = 3
    PercentageOfFile = 4
    PixelsFromMiddleInverted = 5
    PercentageOfOtherDimension = 6
    MaintainFileAspectRatio = 7
    PixelsFromBaseline = 8

class GeneralUnitTypeExtensions(typing.Any):
    @staticmethod
    def GetIsPixelBased(*args: Any, **kwargs: Any) -> 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: ...

class XOrY(IntEnum):
    X = 0
    Y = 1

class UnitConverter(typing.Any):
    @property
    def Self(self) -> Any: ...
    def ConvertXPosition(self, *args: Any, **kwargs: Any) -> Any: ...
    def ConvertYPosition(self, *args: Any, **kwargs: Any) -> Any: ...
    def ConvertToPixelCoordinates(self, *args: Any, **kwargs: Any) -> Any: ...
    def ConvertToUnitTypeCoordinates(self, *args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def TryConvertToGeneralUnit(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def ConvertToGeneralUnit(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def ConvertToGeneralUnit(*args: Any, **kwargs: Any) -> Any: ...
    @staticmethod
    def ConvertToGeneralUnit(*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: ...
