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 collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class CameraMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    CAMERA_MODE_PHOTO: _ClassVar[CameraMode]
    CAMERA_MODE_VIDEO: _ClassVar[CameraMode]

class StreamMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    STREAM_MODE_RGB: _ClassVar[StreamMode]
    STREAM_MODE_RGBD: _ClassVar[StreamMode]
    STREAM_MODE_DEPTH: _ClassVar[StreamMode]

class AlignMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    ALIGN_MODE_COLOR: _ClassVar[AlignMode]
    ALIGN_MODE_DEPTH: _ClassVar[AlignMode]
CAMERA_MODE_PHOTO: CameraMode
CAMERA_MODE_VIDEO: CameraMode
STREAM_MODE_RGB: StreamMode
STREAM_MODE_RGBD: StreamMode
STREAM_MODE_DEPTH: StreamMode
ALIGN_MODE_COLOR: AlignMode
ALIGN_MODE_DEPTH: AlignMode

class RealSenseCameraConfig(_message.Message):
    __slots__ = ("id", "serialNumber", "width", "height", "fps", "codec", "camera_mode", "stream_mode", "align_mode", "buffer_size", "sync", "encode_width", "encode_height")
    ID_FIELD_NUMBER: _ClassVar[int]
    SERIALNUMBER_FIELD_NUMBER: _ClassVar[int]
    WIDTH_FIELD_NUMBER: _ClassVar[int]
    HEIGHT_FIELD_NUMBER: _ClassVar[int]
    FPS_FIELD_NUMBER: _ClassVar[int]
    CODEC_FIELD_NUMBER: _ClassVar[int]
    CAMERA_MODE_FIELD_NUMBER: _ClassVar[int]
    STREAM_MODE_FIELD_NUMBER: _ClassVar[int]
    ALIGN_MODE_FIELD_NUMBER: _ClassVar[int]
    BUFFER_SIZE_FIELD_NUMBER: _ClassVar[int]
    SYNC_FIELD_NUMBER: _ClassVar[int]
    ENCODE_WIDTH_FIELD_NUMBER: _ClassVar[int]
    ENCODE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
    id: str
    serialNumber: str
    width: int
    height: int
    fps: int
    codec: str
    camera_mode: CameraMode
    stream_mode: StreamMode
    align_mode: AlignMode
    buffer_size: int
    sync: bool
    encode_width: int
    encode_height: int
    def __init__(self, id: _Optional[str] = ..., serialNumber: _Optional[str] = ..., width: _Optional[int] = ..., height: _Optional[int] = ..., fps: _Optional[int] = ..., codec: _Optional[str] = ..., camera_mode: _Optional[_Union[CameraMode, str]] = ..., stream_mode: _Optional[_Union[StreamMode, str]] = ..., align_mode: _Optional[_Union[AlignMode, str]] = ..., buffer_size: _Optional[int] = ..., sync: _Optional[bool] = ..., encode_width: _Optional[int] = ..., encode_height: _Optional[int] = ...) -> None: ...

class UVCCameraConfig(_message.Message):
    __slots__ = ("id", "usb", "width", "height", "fps", "codec", "camera_mode", "stream_mode", "buffer_size", "encode_width", "encode_height")
    ID_FIELD_NUMBER: _ClassVar[int]
    USB_FIELD_NUMBER: _ClassVar[int]
    WIDTH_FIELD_NUMBER: _ClassVar[int]
    HEIGHT_FIELD_NUMBER: _ClassVar[int]
    FPS_FIELD_NUMBER: _ClassVar[int]
    CODEC_FIELD_NUMBER: _ClassVar[int]
    CAMERA_MODE_FIELD_NUMBER: _ClassVar[int]
    STREAM_MODE_FIELD_NUMBER: _ClassVar[int]
    BUFFER_SIZE_FIELD_NUMBER: _ClassVar[int]
    ENCODE_WIDTH_FIELD_NUMBER: _ClassVar[int]
    ENCODE_HEIGHT_FIELD_NUMBER: _ClassVar[int]
    id: str
    usb: str
    width: int
    height: int
    fps: int
    codec: str
    camera_mode: CameraMode
    stream_mode: StreamMode
    buffer_size: int
    encode_width: int
    encode_height: int
    def __init__(self, id: _Optional[str] = ..., usb: _Optional[str] = ..., width: _Optional[int] = ..., height: _Optional[int] = ..., fps: _Optional[int] = ..., codec: _Optional[str] = ..., camera_mode: _Optional[_Union[CameraMode, str]] = ..., stream_mode: _Optional[_Union[StreamMode, str]] = ..., buffer_size: _Optional[int] = ..., encode_width: _Optional[int] = ..., encode_height: _Optional[int] = ...) -> None: ...

class MechMindCameraConfig(_message.Message):
    __slots__ = ("id", "ip", "align", "image2d_type")
    ID_FIELD_NUMBER: _ClassVar[int]
    IP_FIELD_NUMBER: _ClassVar[int]
    ALIGN_FIELD_NUMBER: _ClassVar[int]
    IMAGE2D_TYPE_FIELD_NUMBER: _ClassVar[int]
    id: str
    ip: str
    align: bool
    image2d_type: str
    def __init__(self, id: _Optional[str] = ..., ip: _Optional[str] = ..., align: _Optional[bool] = ..., image2d_type: _Optional[str] = ...) -> None: ...

class CameraDeviceConfig(_message.Message):
    __slots__ = ("id", "uvc", "realsense", "mechmind")
    ID_FIELD_NUMBER: _ClassVar[int]
    UVC_FIELD_NUMBER: _ClassVar[int]
    REALSENSE_FIELD_NUMBER: _ClassVar[int]
    MECHMIND_FIELD_NUMBER: _ClassVar[int]
    id: str
    uvc: UVCCameraConfig
    realsense: RealSenseCameraConfig
    mechmind: MechMindCameraConfig
    def __init__(self, id: _Optional[str] = ..., uvc: _Optional[_Union[UVCCameraConfig, _Mapping]] = ..., realsense: _Optional[_Union[RealSenseCameraConfig, _Mapping]] = ..., mechmind: _Optional[_Union[MechMindCameraConfig, _Mapping]] = ...) -> None: ...

class CameraConfig(_message.Message):
    __slots__ = ("cameras",)
    CAMERAS_FIELD_NUMBER: _ClassVar[int]
    cameras: _containers.RepeatedCompositeFieldContainer[CameraDeviceConfig]
    def __init__(self, cameras: _Optional[_Iterable[_Union[CameraDeviceConfig, _Mapping]]] = ...) -> None: ...

class CameraRootConfig(_message.Message):
    __slots__ = ("camera",)
    CAMERA_FIELD_NUMBER: _ClassVar[int]
    camera: CameraConfig
    def __init__(self, camera: _Optional[_Union[CameraConfig, _Mapping]] = ...) -> None: ...
