from farm_ng.core import event_service_pb2 as _event_service_pb2
from farm_ng.core import timestamp_pb2 as _timestamp_pb2
from google.protobuf import struct_pb2 as _struct_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class AnnotationKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    ANNOTATION_UNKNOWN: _ClassVar[AnnotationKind]
    ANNOTATION_ROW_START: _ClassVar[AnnotationKind]
    ANNOTATION_ROW_END: _ClassVar[AnnotationKind]
    ANNOTATION_PATH_START: _ClassVar[AnnotationKind]
    ANNOTATION_PATH_END: _ClassVar[AnnotationKind]
    ANNOTATION_WAYPOINT: _ClassVar[AnnotationKind]
    ANNOTATION_NOTE: _ClassVar[AnnotationKind]
ANNOTATION_UNKNOWN: AnnotationKind
ANNOTATION_ROW_START: AnnotationKind
ANNOTATION_ROW_END: AnnotationKind
ANNOTATION_PATH_START: AnnotationKind
ANNOTATION_PATH_END: AnnotationKind
ANNOTATION_WAYPOINT: AnnotationKind
ANNOTATION_NOTE: AnnotationKind

class RecorderProfile(_message.Message):
    __slots__ = ("name", "subscriptions", "metadata")
    NAME_FIELD_NUMBER: _ClassVar[int]
    SUBSCRIPTIONS_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    name: str
    subscriptions: _containers.RepeatedCompositeFieldContainer[_event_service_pb2.SubscribeRequest]
    metadata: _struct_pb2.Struct
    def __init__(self, name: _Optional[str] = ..., subscriptions: _Optional[_Iterable[_Union[_event_service_pb2.SubscribeRequest, _Mapping]]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...

class RecorderAnnotation(_message.Message):
    __slots__ = ("stamps", "kind", "message")
    STAMPS_FIELD_NUMBER: _ClassVar[int]
    KIND_FIELD_NUMBER: _ClassVar[int]
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    stamps: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]
    kind: AnnotationKind
    message: str
    def __init__(self, stamps: _Optional[_Iterable[_Union[_timestamp_pb2.Timestamp, _Mapping]]] = ..., kind: _Optional[_Union[AnnotationKind, str]] = ..., message: _Optional[str] = ...) -> None: ...
