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

class AcadEntity(AcadObject):
    def __init__(self, obj) -> None: ...
    EntityTransparency: AcEntityTransparency
    Hyperlinks: AcadHyperlinks
    Layer: str
    Linetype: str
    LinetypeScale: float
    Lineweight: AcLineWeight
    Material: str
    PlotStyleName: str
    TrueColor: AcadAcCmColor
    Visible: bool
    def ArrayPolar(self, NumberOfObjects: int, AngleToFill: float, CenterPoint: PyGePoint3d) -> vObjectArray: ...
    def ArrayRectangular(self, NumberOfRows: int, NumberOfColumns: int, NumberOfLevels: int, DistBetweenRows: float, DistBetweenColumns: float, DistBetweenLevels: float) -> vObjectArray: ...
    def Copy(self) -> AcadEntity: ...
    def GetBoundingBox(self) -> PyGePoint3dArray: ...
    def Highlight(self, HighlightFlag: bool) -> None: ...
    def IntersectWith(self, IntersectObject: AcadEntity | AcadAttributeReference, ExtendOption: AcExtendOption) -> PyGePoint3dArray: ...
    def Mirror(self, Point1: PyGePoint3d, Point2: PyGePoint3d) -> AcadEntity: ...
    def Mirror3D(self, Point1: PyGePoint3d, Point2: PyGePoint3d, Point3: PyGePoint3d) -> AcadEntity: ...
    def Move(self, Point1: PyGePoint3d, Point2: PyGePoint3d) -> None: ...
    def Rotate(self, BasePoint: PyGePoint3d, RotationAngle: float) -> None: ...
    def Rotate3D(self, Point1: PyGePoint3d, Point2: PyGePoint3d, RotationAngle: float) -> None: ...
    def ScaleEntity(self, BasePoint: PyGePoint3d, ScaleFactor: float) -> None: ...
    def TransformBy(self, TransformationMatrix: PyGeMatrix3d) -> None: ...
    def Update(self) -> None: ...

class AcadSubEntity(AppObject):
    def __init__(self, obj) -> None: ...
    Color: AcColor
    Hyperlinks: AcadHyperlinks
    Layer: str
    Linetype: str
    LinetypeScale: float
    Lineweight: AcLineWeight
    ObjectName: str
    PlotStyleName: str
