"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import blickfeld.config.scan_pattern_pb2
import blickfeld.error_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import typing
import typing_extensions

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

class Scanner(google.protobuf.message.Message):
    """*
    This section defines the status of the device.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class State(_State, metaclass=_StateEnumTypeWrapper):
        pass
    class _State:
        V = typing.NewType('V', builtins.int)
    class _StateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_State.V], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
        INITIALIZING = Scanner.State.V(1)
        """Device is initializing the hardware."""

        READY = Scanner.State.V(2)
        """Device is ready to start and no error occurred."""

        STARTING = Scanner.State.V(3)
        """Device is starting a point cloud recording, but is not yet recording."""

        RUNNING = Scanner.State.V(4)
        """Device is recording a point cloud."""

        STOPPING = Scanner.State.V(5)
        """Device stops point cloud recording; it is no longer recording."""

        ERRORED = Scanner.State.V(6)
        """Device is in an error state; it can no longer operate."""

        SELF_TESTING = Scanner.State.V(7)
        """Device is testing the hardware."""


    INITIALIZING = Scanner.State.V(1)
    """Device is initializing the hardware."""

    READY = Scanner.State.V(2)
    """Device is ready to start and no error occurred."""

    STARTING = Scanner.State.V(3)
    """Device is starting a point cloud recording, but is not yet recording."""

    RUNNING = Scanner.State.V(4)
    """Device is recording a point cloud."""

    STOPPING = Scanner.State.V(5)
    """Device stops point cloud recording; it is no longer recording."""

    ERRORED = Scanner.State.V(6)
    """Device is in an error state; it can no longer operate."""

    SELF_TESTING = Scanner.State.V(7)
    """Device is testing the hardware."""


    STATE_FIELD_NUMBER: builtins.int
    SCAN_PATTERN_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    state: global___Scanner.State.V = ...
    """Refer to [Scanner.State](#blickfeld.protocol.status.Scanner.State)"""

    @property
    def scan_pattern(self) -> blickfeld.config.scan_pattern_pb2.ScanPattern:
        """Refer to [ScanPattern](#blickfeld.protocol.config.ScanPattern)"""
        pass
    @property
    def error(self) -> blickfeld.error_pb2.Error:
        """Refer to [Error](#blickfeld.protocol.Error)"""
        pass
    def __init__(self,
        *,
        state : typing.Optional[global___Scanner.State.V] = ...,
        scan_pattern : typing.Optional[blickfeld.config.scan_pattern_pb2.ScanPattern] = ...,
        error : typing.Optional[blickfeld.error_pb2.Error] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"error",b"error",u"scan_pattern",b"scan_pattern",u"state",b"state"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"error",b"error",u"scan_pattern",b"scan_pattern",u"state",b"state"]) -> None: ...
global___Scanner = Scanner
