"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import blickfeld.data.imu_pb2
import blickfeld.data.point_cloud_pb2
import blickfeld.status.main_pb2
import blickfeld.stream.connection_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import typing
import typing_extensions

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

class Event(google.protobuf.message.Message):
    """*
    This section describes the events of streams.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    class Developer(google.protobuf.message.Message):
        """*
        Internal use only
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        def __init__(self,
            ) -> None: ...

    class EndOfStream(google.protobuf.message.Message):
        """*
        > Introduced in BSL v2.13 and firmware v1.13

        Event to indicate the end of stream.
        This is called after an [Unsubscribe](#blickfeld.protocol.stream.Unsubscribe) request.
        No further events will arrive for the subscribed stream after this event.
        """
        DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
        SUBSCRIPTION_FIELD_NUMBER: builtins.int
        @property
        def subscription(self) -> blickfeld.stream.connection_pb2.Subscribe:
            """Ended subscription. Refer to [Subscribe](#blickfeld.protocol.stream.Subscribe)."""
            pass
        def __init__(self,
            *,
            subscription : typing.Optional[blickfeld.stream.connection_pb2.Subscribe] = ...,
            ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal[u"subscription",b"subscription"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal[u"subscription",b"subscription"]) -> None: ...

    POINT_CLOUD_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    DEVELOPER_FIELD_NUMBER: builtins.int
    RAW_FILE_FIELD_NUMBER: builtins.int
    END_OF_STREAM_FIELD_NUMBER: builtins.int
    IMU_FIELD_NUMBER: builtins.int
    @property
    def point_cloud(self) -> blickfeld.data.point_cloud_pb2.PointCloud:
        """Refer to [PointCloud](#blickfeld.protocol.data.PointCloud)"""
        pass
    @property
    def status(self) -> blickfeld.status.main_pb2.Status:
        """Refer to [Status](#blickfeld.protocol.Status)"""
        pass
    @property
    def developer(self) -> global___Event.Developer:
        """Refer to [Event.Developer](#blickfeld.protocol.stream.Event.Developer)"""
        pass
    raw_file: builtins.bytes = ...
    """<blockquote>Introduced in BSL v2.13 and firmware v1.13</blockquote> Raw bytes, which should be written sequentially in a file. Refer to [RawFile](#blickfeld.protocol.stream.Subscribe.RawFile)."""

    @property
    def end_of_stream(self) -> global___Event.EndOfStream:
        """<blockquote>Introduced in BSL v2.13 and firmware v1.13</blockquote> Refer to [EndOfStream](#blickfeld.protocol.stream.Event.EndOfStream)"""
        pass
    @property
    def imu(self) -> blickfeld.data.imu_pb2.IMU:
        """<blockquote>Introduced in BSL v2.18 and firmware v1.19</blockquote> Refer to [IMU](#blickfeld.protocol.data.IMU)"""
        pass
    def __init__(self,
        *,
        point_cloud : typing.Optional[blickfeld.data.point_cloud_pb2.PointCloud] = ...,
        status : typing.Optional[blickfeld.status.main_pb2.Status] = ...,
        developer : typing.Optional[global___Event.Developer] = ...,
        raw_file : typing.Optional[builtins.bytes] = ...,
        end_of_stream : typing.Optional[global___Event.EndOfStream] = ...,
        imu : typing.Optional[blickfeld.data.imu_pb2.IMU] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal[u"data",b"data",u"developer",b"developer",u"end_of_stream",b"end_of_stream",u"imu",b"imu",u"point_cloud",b"point_cloud",u"raw_file",b"raw_file",u"status",b"status"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"data",b"data",u"developer",b"developer",u"end_of_stream",b"end_of_stream",u"imu",b"imu",u"point_cloud",b"point_cloud",u"raw_file",b"raw_file",u"status",b"status"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal[u"data",b"data"]) -> typing.Optional[typing_extensions.Literal["point_cloud","status","developer","raw_file","end_of_stream","imu"]]: ...
global___Event = Event
