"""
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 SampleSizes, SampleSizes_Pow2Plus1
from zospy.api._ZOSAPI.Analysis.Settings import (
    IAS_,
    IAS_Field,
    IAS_Surface,
    IAS_Wavelength,
)

__all__ = ("IAS_DiffEfficiency2D", "IAS_DiffEfficiencyAngular", "IAS_DiffEfficiencyChromatic")

class IAS_DiffEfficiency2D(IAS_):
    @property
    def AmbientObject(self) -> int: ...
    @property
    def DetectorObject(self) -> int: ...
    @property
    def Field(self) -> IAS_Field: ...
    @property
    def HologramObject(self) -> int: ...
    @property
    def InsideOfObject(self) -> int: ...
    @property
    def MaxAngle(self) -> float: ...
    @property
    def MaxWavelength(self) -> float: ...
    @property
    def MinAngle(self) -> float: ...
    @property
    def MinWavelength(self) -> float: ...
    @property
    def SampleSize(self) -> SampleSizes: ...
    @property
    def srcPolJx(self) -> float: ...
    @property
    def srcPolJy(self) -> float: ...
    @property
    def srcPositionX(self) -> float: ...
    @property
    def srcPositionY(self) -> float: ...
    @property
    def srcPositionZ(self) -> float: ...
    @property
    def srcPrePropagation(self) -> float: ...
    @property
    def srcUnpolarized(self) -> bool: ...
    @property
    def srcXTitled(self) -> bool: ...
    @property
    def Surface(self) -> IAS_Surface: ...
    @property
    def Wavelength(self) -> IAS_Wavelength: ...
    @AmbientObject.setter
    def AmbientObject(self, value: int) -> None: ...
    @DetectorObject.setter
    def DetectorObject(self, value: int) -> None: ...
    @HologramObject.setter
    def HologramObject(self, value: int) -> None: ...
    @InsideOfObject.setter
    def InsideOfObject(self, value: int) -> None: ...
    @MaxAngle.setter
    def MaxAngle(self, value: float) -> None: ...
    @MaxWavelength.setter
    def MaxWavelength(self, value: float) -> None: ...
    @MinAngle.setter
    def MinAngle(self, value: float) -> None: ...
    @MinWavelength.setter
    def MinWavelength(self, value: float) -> None: ...
    @SampleSize.setter
    def SampleSize(self, value: SampleSizes) -> None: ...
    @srcPolJx.setter
    def srcPolJx(self, value: float) -> None: ...
    @srcPolJy.setter
    def srcPolJy(self, value: float) -> None: ...
    @srcPositionX.setter
    def srcPositionX(self, value: float) -> None: ...
    @srcPositionY.setter
    def srcPositionY(self, value: float) -> None: ...
    @srcPositionZ.setter
    def srcPositionZ(self, value: float) -> None: ...
    @srcPrePropagation.setter
    def srcPrePropagation(self, value: float) -> None: ...
    @srcUnpolarized.setter
    def srcUnpolarized(self, value: bool) -> None: ...
    @srcXTitled.setter
    def srcXTitled(self, value: bool) -> None: ...

class IAS_DiffEfficiencyAngular(IAS_):
    @property
    def AmbientObject(self) -> int: ...
    @property
    def DetectorObject(self) -> int: ...
    @property
    def Field(self) -> IAS_Field: ...
    @property
    def HologramObject(self) -> int: ...
    @property
    def InsideOfObject(self) -> int: ...
    @property
    def MaxAngle(self) -> float: ...
    @property
    def MinAngle(self) -> float: ...
    @property
    def SampleSize(self) -> SampleSizes_Pow2Plus1: ...
    @property
    def srcPolJx(self) -> float: ...
    @property
    def srcPolJy(self) -> float: ...
    @property
    def srcPositionX(self) -> float: ...
    @property
    def srcPositionY(self) -> float: ...
    @property
    def srcPositionZ(self) -> float: ...
    @property
    def srcPrePropagation(self) -> float: ...
    @property
    def srcUnpolarized(self) -> bool: ...
    @property
    def srcXTitled(self) -> bool: ...
    @property
    def Surface(self) -> IAS_Surface: ...
    @property
    def Wavelength(self) -> IAS_Wavelength: ...
    @AmbientObject.setter
    def AmbientObject(self, value: int) -> None: ...
    @DetectorObject.setter
    def DetectorObject(self, value: int) -> None: ...
    @HologramObject.setter
    def HologramObject(self, value: int) -> None: ...
    @InsideOfObject.setter
    def InsideOfObject(self, value: int) -> None: ...
    @MaxAngle.setter
    def MaxAngle(self, value: float) -> None: ...
    @MinAngle.setter
    def MinAngle(self, value: float) -> None: ...
    @SampleSize.setter
    def SampleSize(self, value: SampleSizes_Pow2Plus1) -> None: ...
    @srcPolJx.setter
    def srcPolJx(self, value: float) -> None: ...
    @srcPolJy.setter
    def srcPolJy(self, value: float) -> None: ...
    @srcPositionX.setter
    def srcPositionX(self, value: float) -> None: ...
    @srcPositionY.setter
    def srcPositionY(self, value: float) -> None: ...
    @srcPositionZ.setter
    def srcPositionZ(self, value: float) -> None: ...
    @srcPrePropagation.setter
    def srcPrePropagation(self, value: float) -> None: ...
    @srcUnpolarized.setter
    def srcUnpolarized(self, value: bool) -> None: ...
    @srcXTitled.setter
    def srcXTitled(self, value: bool) -> None: ...

class IAS_DiffEfficiencyChromatic(IAS_):
    @property
    def AmbientObject(self) -> int: ...
    @property
    def DetectorObject(self) -> int: ...
    @property
    def Field(self) -> IAS_Field: ...
    @property
    def HologramObject(self) -> int: ...
    @property
    def InsideOfObject(self) -> int: ...
    @property
    def MaxWavelength(self) -> float: ...
    @property
    def MinWavelength(self) -> float: ...
    @property
    def SampleSize(self) -> SampleSizes_Pow2Plus1: ...
    @property
    def srcPolJx(self) -> float: ...
    @property
    def srcPolJy(self) -> float: ...
    @property
    def srcPositionX(self) -> float: ...
    @property
    def srcPositionY(self) -> float: ...
    @property
    def srcPositionZ(self) -> float: ...
    @property
    def srcPrePropagation(self) -> float: ...
    @property
    def srcUnpolarized(self) -> bool: ...
    @property
    def srcXTitled(self) -> bool: ...
    @property
    def Surface(self) -> IAS_Surface: ...
    @property
    def Wavelength(self) -> IAS_Wavelength: ...
    @AmbientObject.setter
    def AmbientObject(self, value: int) -> None: ...
    @DetectorObject.setter
    def DetectorObject(self, value: int) -> None: ...
    @HologramObject.setter
    def HologramObject(self, value: int) -> None: ...
    @InsideOfObject.setter
    def InsideOfObject(self, value: int) -> None: ...
    @MaxWavelength.setter
    def MaxWavelength(self, value: float) -> None: ...
    @MinWavelength.setter
    def MinWavelength(self, value: float) -> None: ...
    @SampleSize.setter
    def SampleSize(self, value: SampleSizes_Pow2Plus1) -> None: ...
    @srcPolJx.setter
    def srcPolJx(self, value: float) -> None: ...
    @srcPolJy.setter
    def srcPolJy(self, value: float) -> None: ...
    @srcPositionX.setter
    def srcPositionX(self, value: float) -> None: ...
    @srcPositionY.setter
    def srcPositionY(self, value: float) -> None: ...
    @srcPositionZ.setter
    def srcPositionZ(self, value: float) -> None: ...
    @srcPrePropagation.setter
    def srcPrePropagation(self, value: float) -> None: ...
    @srcUnpolarized.setter
    def srcUnpolarized(self, value: bool) -> None: ...
    @srcXTitled.setter
    def srcXTitled(self, value: bool) -> None: ...
