from __future__ import annotations
from typing import Protocol, runtime_checkable, TYPE_CHECKING

if TYPE_CHECKING:
    from zempy.zosapi.analysis.ias.protocols.ias_field import  IAS_Field
    from zempy.zosapi.analysis.ias.protocols.ias_surface import IAS_Surface
    from zempy.zosapi.analysis.ias.protocols.ias_wavelength import IAS_Wavelength
    from zempy.zosapi.analysis.protocols.i_message import IMessage

@runtime_checkable
class IAS_(Protocol):
    def Verify(self) -> IMessage: ...
    def Save(self) -> None: ...
    def Load(self) -> None: ...
    def Reset(self) -> None: ...
    def SaveTo(self, settingsFile: str) -> bool: ...
    def LoadFrom(self, settingsFile: str) -> bool: ...
    def ModifySettings(
        self, settingsFile: str, typeCode: str, newValue: str
    ) -> bool: ...

    @property
    def Field(self) -> IAS_Field: ...

    @property
    def Surface(self) -> IAS_Surface: ...

    @property
    def Wavelength(self) -> IAS_Wavelength:...
