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

from __future__ import annotations

from zospy.api._ZOSAPI.Analysis import DetectorViewerShowAsTypes, DetectorViewerShowDataTypes
from zospy.api._ZOSAPI.Analysis.Settings import IAS_, DetectorViewerScaleTypes

__all__ = ("IAS_DetectorViewer", "IAS_NSCSingleRayTrace")

class IAS_DetectorViewer(IAS_):
    @property
    def Surface(self) -> IAS_Surface: ...
    @property
    def Detector(self) -> IAS_Detector: ...
    @property
    def ShowAs(self) -> DetectorViewerShowAsTypes: ...
    @ShowAs.setter
    def ShowAs(self, value: DetectorViewerShowAsTypes) -> None: ...
    @property
    def Scale(self) -> DetectorViewerScaleTypes: ...
    @Scale.setter
    def Scale(self, value: DetectorViewerScaleTypes) -> None: ...
    @property
    def DataType(self) -> DetectorViewerShowDataTypes: ...
    @DataType.setter
    def DataType(self, value: DetectorViewerShowDataTypes) -> None: ...
    @property
    def SymbolType(self) -> int: ...
    @SymbolType.setter
    def SymbolType(self, value: int) -> None: ...
    @property
    def Configuration(self) -> int: ...
    @Configuration.setter
    def Configuration(self, value: int) -> None: ...
    @property
    def ExtraProperty(self) -> int: ...
    @ExtraProperty.setter
    def ExtraProperty(self, value: int) -> None: ...
    @property
    def Smoothing(self) -> int: ...
    @Smoothing.setter
    def Smoothing(self, value: int) -> None: ...
    @property
    def RowCol(self) -> int: ...
    @RowCol.setter
    def RowCol(self, value: int) -> None: ...
    @property
    def Zplane(self) -> int: ...
    @Zplane.setter
    def Zplane(self, value: int) -> None: ...
    @property
    def Contrast(self) -> UInt16: ...
    @Contrast.setter
    def Contrast(self, value: UInt16) -> None: ...
    @property
    def AngleList(self) -> list[UInt16]: ...
    @AngleList.setter
    def AngleList(self, value: list[UInt16]) -> None: ...
    @property
    def PlotScaleMinimum(self) -> float: ...
    @PlotScaleMinimum.setter
    def PlotScaleMinimum(self, value: float) -> None: ...
    @property
    def PlotScaleMaximum(self) -> float: ...
    @PlotScaleMaximum.setter
    def PlotScaleMaximum(self, value: float) -> None: ...
    @property
    def RayDatabaseFilename(self) -> str: ...
    @RayDatabaseFilename.setter
    def RayDatabaseFilename(self, value: str) -> None: ...
    @property
    def Filter(self) -> str: ...
    @Filter.setter
    def Filter(self, value: str) -> None: ...
    @property
    def OutFile(self) -> str: ...
    @OutFile.setter
    def OutFile(self, value: str) -> None: ...
    @property
    def SuppressFrame(self) -> bool: ...
    @SuppressFrame.setter
    def SuppressFrame(self, value: bool) -> None: ...
    @property
    def NumberOfNonSequentialSurfaces(self) -> int: ...
    @property
    def NumberOfDetectorsOnSurface(self) -> int: ...
    @property
    def NumberOfShowAsTypes(self) -> int: ...
    @property
    def MaxSpatialFrequency(self) -> float: ...
    @MaxSpatialFrequency.setter
    def MaxSpatialFrequency(self, value: float) -> None: ...
    def GetDetectorName(self, index: int) -> str: ...
    def GetDetectorObjectNumber(self, index: int) -> int: ...
    def GetNonSequentialSurfaceName(self, index: int) -> str: ...
    def GetNonSequentialSurfaceNumber(self, index: int) -> int: ...
    def GetShowAsTypeNameAt(self, idx: int) -> str: ...
    def IsValidDetector(self, N: int) -> bool: ...

class IAS_NSCSingleRayTrace(IAS_):
    @property
    def Wavelength(self) -> IAS_Wavelength: ...
    @property
    def RaySourceX(self) -> float: ...
    @RaySourceX.setter
    def RaySourceX(self, value: float) -> None: ...
    @property
    def RaySourceY(self) -> float: ...
    @RaySourceY.setter
    def RaySourceY(self, value: float) -> None: ...
    @property
    def RaySourceZ(self) -> float: ...
    @RaySourceZ.setter
    def RaySourceZ(self, value: float) -> None: ...
    @property
    def RaySourceL(self) -> float: ...
    @RaySourceL.setter
    def RaySourceL(self, value: float) -> None: ...
    @property
    def RaySourceM(self) -> float: ...
    @RaySourceM.setter
    def RaySourceM(self, value: float) -> None: ...
    @property
    def RaySourceN(self) -> float: ...
    @RaySourceN.setter
    def RaySourceN(self, value: float) -> None: ...
    @property
    def RefObject(self) -> int: ...
    @RefObject.setter
    def RefObject(self, value: int) -> None: ...
    @property
    def SplitNSCRays(self) -> bool: ...
    @SplitNSCRays.setter
    def SplitNSCRays(self, value: bool) -> None: ...
    @property
    def ScatterNSCRays(self) -> bool: ...
    @ScatterNSCRays.setter
    def ScatterNSCRays(self, value: bool) -> None: ...
    @property
    def UsePolarization(self) -> bool: ...
    @UsePolarization.setter
    def UsePolarization(self, value: bool) -> None: ...
    @property
    def ShowXYZ(self) -> bool: ...
    @ShowXYZ.setter
    def ShowXYZ(self, value: bool) -> None: ...
    @property
    def ShowLMN(self) -> bool: ...
    @ShowLMN.setter
    def ShowLMN(self, value: bool) -> None: ...
    @property
    def ShowPath(self) -> bool: ...
    @ShowPath.setter
    def ShowPath(self, value: bool) -> None: ...
    @property
    def ShowNormal(self) -> bool: ...
    @ShowNormal.setter
    def ShowNormal(self, value: bool) -> None: ...
    @property
    def ShowExyz(self) -> bool: ...
    @ShowExyz.setter
    def ShowExyz(self, value: bool) -> None: ...
    @property
    def ExpandIntoBranches(self) -> bool: ...
    @ExpandIntoBranches.setter
    def ExpandIntoBranches(self, value: bool) -> None: ...
    @property
    def DecimalPrecision(self) -> int: ...
    @DecimalPrecision.setter
    def DecimalPrecision(self, value: int) -> None: ...
    @property
    def SaveRaysFile(self) -> str: ...
    @SaveRaysFile.setter
    def SaveRaysFile(self, value: str) -> None: ...
