from ..Base import *
from ..Proxy import *
from ..AcadObject import *

class AcadUtility(AppObject):
    def __init__(self, obj) -> None: ...
    def AngleFromXAxis(self, Point1: PyGePoint3d, Point2: PyGePoint3d) -> float: ...
    def AngleToReal(self, Angle: str, Unit: AcAngleUnits) -> float: ...
    def AngleToString(self, Angle: float, Unit: AcAngleUnits, Precision: int) -> str: ...
    def CreateTypedArray(self, Type: VbVarType, Value1, *args): ...
    def DistanceToReal(self, Distance: str, Unit: AcUnits) -> float: ...
    def GetAngle(self, Point: PyGePoint3d = None, Prompt: str = '') -> float: ...
    def GetCorner(self, Point: PyGePoint3d, Prompt: str = '') -> tuple: ...
    def GetDistance(self, Point: PyGePoint3d = None, Prompt: str = None) -> float: ...
    def GetEntity(self, Prompt: str = '') -> tuple: ...
    def GetInput(self) -> str: ...
    def GetInteger(self, Prompt: str = '') -> int: ...
    def GetKeyword(self, Prompt: str = '') -> str: ...
    def GetObjectIdString(self, acadObject: AcadObject, bHex: bool) -> str: ...
    def GetOrientation(self, Point: PyGePoint3d, Prompt: str = '') -> float: ...
    def GetPoint(self, Point: PyGePoint3d = None, Prompt: str = '') -> tuple: ...
    def GetReal(self, Prompt: str = '') -> float: ...
    def GetRemoteFile(self, URL: str, IgnoreCache: bool) -> None: ...
    def GetString(self, HasSpaces: int, Prompt: str = '') -> float: ...
    def GetSubEntity(self, Prompt: str = '') -> tuple: ...
    def InitializeUserInput(self, Bits: int, Keyword: str = None) -> None: ...
    def IsRemoteFile(self, LocalFile: str, URL: str) -> bool: ...
    def IsURL(self, URL: str) -> bool: ...
    def LaunchBrowserDialog(self, DialogTitle: str, OpenButtonCaption: str, StartPageURL: str, RegistryRootKey: str, OpenButtonAlwaysEnabled: bool) -> bool: ...
    def PolarPoint(self, Point: PyGePoint3d, Angle: float, Distance: float) -> PyGePoint3d: ...
    def Prompt(self, Message: str) -> None: ...
    def PutRemoteFile(self, URL: str, LocalFile: str) -> None: ...
    def RealToString(self, Value: float, Unit: AcUnits, Precision: int) -> str: ...
    def SendModelessOperationEnded(self) -> str: ...
    def SendModelessOperationStart(self, Context: str) -> None: ...
    def TranslateCoordinates(self, Point: PyGePoint3d, FromCoordSystem: AcCoordinateSystem, ToCoordSystem: AcCoordinateSystem, Displacement: int, OCSNormal: PyGeVector3d = None) -> tuple: ...

class VbVarType(IntEnum):
    vbBoolean = 11
    vbInteger = 2
    vbLong = 3
    vbSingle = 4
    vbDouble = 5
