"""Auto-generated stub file for GTA V ScriptHookVDotNet"""

from typing import Any, List, Dict, Optional, Iterable, ClassVar, Tuple, Callable, TypeVar, overload, Union
from enum import Enum

from GTA import (
    AtHashValue,
    Blip,
    Camera,
    Checkpoint,
    Entity,
    Game,
    Model,
    Ped,
    PedHash,
    Player,
    Prop,
    Vehicle,
    VehicleHash,
    Weapon,
    WeaponHash,
    World
)
from GTA.Math import Matrix, Quaternion, Vector2, Vector3

class Scripted2DGfxSettings:
    DrawsBehindPauseMenu: bool
    DrawOrder: ScriptedGfxDrawOrder
    @staticmethod
    def SetAlignmentType(alignX: UIAlignment, alignY: UIAlignment) -> None: ...
    @staticmethod
    def SetAlignmentOffsetAndSize(offset: Any, size: Any) -> None: ...
    @staticmethod
    def ResetAlignment() -> None: ...
    @staticmethod
    def GetAlignPosition(offset: Any) -> Any: ...

class ScriptedGfxDrawOrder(Enum):
    BeforeHudPriorityLow = 0
    BeforeHud = 1
    BeforeHudPriorityHigh = 2
    AfterHudPriorityLow = 3
    AfterHud = 4
    AfterHudPriorityHigh = 5
    AfterFadePriorityLow = 6
    AfterFade = 7
    AfterFadePriorityHigh = 8

class TextureAsset:
    Txd: Txd
    TextureName: str
    @overload
    def __init__(self, txdName: str, texName: str) -> None: ...
    @overload
    def __init__(self, txd: Txd, texName: str) -> None: ...
    def __init__(self, *args: Any, **kwargs: Any) -> None: ...
    def HashTextureName(self) -> AtHashValue: ...
    @overload
    def Equals(self, other: TextureAsset) -> bool: ...
    @overload
    def Equals(self, obj: object) -> bool: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self) -> int: ...
    def Deconstruct(self, txd: Txd, texName: str) -> None: ...

class Txd:
    Name: str
    IsLoaded: bool
    def __init__(self, name: str) -> None: ...
    def HashName(self) -> AtHashValue: ...
    def Request(self) -> None: ...
    def MarkAsNoLongerNeeded(self) -> None: ...
    @overload
    def Equals(self, other: Txd) -> bool: ...
    @overload
    def Equals(self, obj: object) -> bool: ...
    def Equals(self, *args: Any, **kwargs: Any) -> Any: ...
    def GetHashCode(self) -> int: ...
    def ToString(self) -> str: ...

class UIAlignment(Enum):
    Bottom = 66
    Ignore = 73
    Left = 76
    Right = 82
    Top = 84
