from __future__ import annotations
from typing import Protocol, runtime_checkable
from zempy.zosapi.analysis.enums.sample_sizes import SampleSizes
from zempy.zosapi.analysis.ias.enums.huygens_psf_types import HuygensPsfTypes
from zempy.zosapi.analysis.enums.huygens_show_as_types import HuygensShowAsTypes
from zempy.zosapi.analysis.ias.enums.rotations import Rotations

@runtime_checkable
class IAS_HuygensPsf(Protocol):


    @property
    def PupilSampleSize(self) -> SampleSizes: ...
    @PupilSampleSize.setter
    def PupilSampleSize(self, v: SampleSizes) -> None: ...

    @property
    def ImageSampleSize(self) -> SampleSizes: ...
    @ImageSampleSize.setter
    def ImageSampleSize(self, v: SampleSizes) -> None: ...

    @property
    def Type(self) -> HuygensPsfTypes: ...
    @Type.setter
    def Type(self, v: HuygensPsfTypes) -> None: ...

    @property
    def ShowAsType(self) -> HuygensShowAsTypes: ...
    @ShowAsType.setter
    def ShowAsType(self, v: HuygensShowAsTypes) -> None: ...

    @property
    def Rotation(self) -> Rotations: ...
    @Rotation.setter
    def Rotation(self, v: Rotations) -> None: ...

    @property
    def Normalize(self) -> bool: ...
    @Normalize.setter
    def Normalize(self, v: bool) -> None: ...

    @property
    def UseCentroid(self) -> bool: ...
    @UseCentroid.setter
    def UseCentroid(self, v: bool) -> None: ...

    @property
    def UsePolarization(self) -> bool: ...
    @UsePolarization.setter
    def UsePolarization(self, v: bool) -> None: ...

    @property
    def ImageDelta(self) -> float: ...
    @ImageDelta.setter
    def ImageDelta(self, v: float) -> None: ...

    @property
    def Configuration(self) -> int: ...
    @Configuration.setter
    def Configuration(self, v: int) -> None: ...
