from __future__ import annotations
from typing import runtime_checkable, Protocol
from zempy.zosapi.analysis.fftpsf.enums import PsfSampling, PsfRotation, FftPsfType

@runtime_checkable
class IAS_FftPsf(Protocol):

    # --- FFT PSF specific properties ---
    @property
    def SampleSize(self) -> PsfSampling: ...
    @SampleSize.setter
    def SampleSize(self, v: PsfSampling) -> None: ...

    @property
    def OutputSize(self) -> PsfSampling: ...
    @OutputSize.setter
    def OutputSize(self, v: PsfSampling) -> None: ...

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

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

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

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

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


