"""This file provides autocompletions for the ZOS-API and was automatically generated.
It should not be edited manually.
"""

from zospy.api.stubs._ZOSAPI.Editors import IEditor, IEditorCell, IEditorRow
from zospy.api.stubs._ZOSAPI.Editors.TDE import (
    ITDERow,
    IToleranceDataEditor,
    ToleranceColumn,
    ToleranceOperandType,
)
from zospy.api.stubs._ZOSAPI.Common import ZemaxColor
from zospy.api.stubs._ZOSAPI.Wizards import INSCToleranceWizard, ISEQToleranceWizard

from zospy.api.stubs._ZOSAPI_constants.Editors.TDE import (
    ToleranceColumn,
    ToleranceOperandType,
)

__all__ = ("ITDERow", "IToleranceDataEditor", "ToleranceColumn", "ToleranceOperandType")

class ITDERow(IEditorRow):
    @property
    def IsActive(self) -> bool: ...
    @property
    def OperandNumber(self) -> int: ...
    @property
    def TypeName(self) -> str: ...
    @property
    def Type(self) -> ToleranceOperandType: ...
    @property
    def DoNotAdjustDuringInverseTolerancing(self) -> bool: ...
    @DoNotAdjustDuringInverseTolerancing.setter
    def DoNotAdjustDuringInverseTolerancing(self, value: bool) -> None: ...
    @property
    def IgnoreThisOperandDuringTolerancing(self) -> bool: ...
    @IgnoreThisOperandDuringTolerancing.setter
    def IgnoreThisOperandDuringTolerancing(self, value: bool) -> None: ...
    @property
    def RowColor(self) -> ZemaxColor: ...
    @RowColor.setter
    def RowColor(self, value: ZemaxColor) -> None: ...
    @property
    def Min(self) -> float: ...
    @Min.setter
    def Min(self, value: float) -> None: ...
    @property
    def MinCell(self) -> IEditorCell: ...
    @property
    def IsMinUsed(self) -> bool: ...
    @property
    def Max(self) -> float: ...
    @Max.setter
    def Max(self, value: float) -> None: ...
    @property
    def MaxCell(self) -> IEditorCell: ...
    @property
    def IsMaxUsed(self) -> bool: ...
    @property
    def Comment(self) -> str: ...
    @Comment.setter
    def Comment(self, value: str) -> None: ...
    @property
    def CommentCell(self) -> IEditorCell: ...
    @property
    def Param1(self) -> int: ...
    @Param1.setter
    def Param1(self, value: int) -> None: ...
    @property
    def Param1Cell(self) -> IEditorCell: ...
    @property
    def IsParam1Used(self) -> bool: ...
    @property
    def Param2(self) -> int: ...
    @Param2.setter
    def Param2(self, value: int) -> None: ...
    @property
    def Param2Cell(self) -> IEditorCell: ...
    @property
    def IsParam2Used(self) -> bool: ...
    @property
    def Param3(self) -> int: ...
    @Param3.setter
    def Param3(self, value: int) -> None: ...
    @property
    def Param3Cell(self) -> IEditorCell: ...
    @property
    def IsParam3Used(self) -> bool: ...
    @property
    def Nominal(self) -> float: ...
    @property
    def NominalCell(self) -> IEditorCell: ...
    @property
    def IsNominalUsed(self) -> bool: ...
    def AvailableOperandTypes(self) -> list[ToleranceOperandType]: ...
    def ChangeType(self, type: ToleranceOperandType) -> bool: ...
    def GetOperandCell(self, Col: ToleranceColumn) -> IEditorCell: ...

class IToleranceDataEditor(IEditor):
    @property
    def RowToOperandOffset(self) -> int: ...
    @property
    def NumberOfOperands(self) -> int: ...
    @property
    def FirstColumn(self) -> ToleranceColumn: ...
    @property
    def LastColumn(self) -> ToleranceColumn: ...
    @property
    def NSCToleranceWizard(self) -> INSCToleranceWizard: ...
    @property
    def SEQToleranceWizard(self) -> ISEQToleranceWizard: ...
    def AddOperand(self) -> ITDERow: ...
    def CopyOperands(
        self, fromOperandNumber: int, NumberOfOperands: int, toOperandNumber: int
    ) -> int: ...
    def CopyOperandsFrom(
        self,
        fromEditor: IToleranceDataEditor,
        fromOperandNumber: int,
        NumberOfOperands: int,
        toOperandNumber: int,
    ) -> int: ...
    def GetOperandAt(self, OperandNumber: int) -> ITDERow: ...
    def HideTDE(self) -> None: ...
    def InsertNewOperandAt(self, OperandNumber: int) -> ITDERow: ...
    def LoadToleranceFile(self, fileName: str) -> bool: ...
    def RemoveOperandAt(self, OperandNumber: int) -> bool: ...
    def RemoveOperandsAt(self, OperandNumber: int, numOperands: int) -> int: ...
    def SaveToleranceFile(self, fileName: str) -> None: ...
    def ShowTDE(self) -> bool: ...

# ToleranceColumn is imported as constant

# ToleranceOperandType is imported as constant
