"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import blickfeld.status.imu_pb2
import blickfeld.status.scanner_pb2
import blickfeld.status.server_pb2
import blickfeld.status.temperature_pb2
import blickfeld.status.time_synchronization_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

class Status(google.protobuf.message.Message):
    """*
    This section contains the status messages of the two deflection mirrors and the temperature sensors in the device.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SCANNER_FIELD_NUMBER: builtins.int
    TEMPERATURES_FIELD_NUMBER: builtins.int
    SERVER_FIELD_NUMBER: builtins.int
    IMU_FIELD_NUMBER: builtins.int
    TIME_SYNCHRONIZATION_FIELD_NUMBER: builtins.int
    @property
    def scanner(self) -> blickfeld.status.scanner_pb2.Scanner:
        """Refer to [Scanner](#blickfeld.protocol.status.scanner.Scanner)"""
        pass
    @property
    def temperatures(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[blickfeld.status.temperature_pb2.Temperature]:
        """Refer to [Temperature](#blickfeld.protocol.status.temperature.Temperature)"""
        pass
    @property
    def server(self) -> blickfeld.status.server_pb2.Server:
        """Refer to [Client](#blickfeld.protocol.status.server.Server)"""
        pass
    @property
    def imu(self) -> blickfeld.status.imu_pb2.IMU:
        """<blockquote>Introduced in BSL v2.18 and firmware v1.19</blockquote> Refer to [IMU](#blickfeld.protocol.status.IMU)"""
        pass
    @property
    def time_synchronization(self) -> blickfeld.status.time_synchronization_pb2.TimeSynchronization:
        """<blockquote>Introduced in BSL v2.18 and firmware v1.19</blockquote> Refer to [TimeSynchronization](#blickfeld.protocol.status.TimeSynchronization)"""
        pass
    def __init__(self,
        *,
        scanner : typing.Optional[blickfeld.status.scanner_pb2.Scanner] = ...,
        temperatures : typing.Optional[typing.Iterable[blickfeld.status.temperature_pb2.Temperature]] = ...,
        server : typing.Optional[blickfeld.status.server_pb2.Server] = ...,
        imu : typing.Optional[blickfeld.status.imu_pb2.IMU] = ...,
        time_synchronization : typing.Optional[blickfeld.status.time_synchronization_pb2.TimeSynchronization] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"imu",b"imu",u"scanner",b"scanner",u"server",b"server",u"time_synchronization",b"time_synchronization"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"imu",b"imu",u"scanner",b"scanner",u"server",b"server",u"temperatures",b"temperatures",u"time_synchronization",b"time_synchronization"]) -> None: ...
global___Status = Status
