from . import digitalAudio_pb2 as _digitalAudio_pb2
from . import url_pb2 as _url_pb2
from . import uuid_pb2 as _uuid_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 Recording(_message.Message):
    __slots__ = ()
    class SettingsDocument(_message.Message):
        __slots__ = ("streams", "presets", "active_preset")
        STREAMS_FIELD_NUMBER: _ClassVar[int]
        PRESETS_FIELD_NUMBER: _ClassVar[int]
        ACTIVE_PRESET_FIELD_NUMBER: _ClassVar[int]
        streams: _containers.RepeatedCompositeFieldContainer[Recording.Stream]
        presets: _containers.RepeatedCompositeFieldContainer[Recording.Preset]
        active_preset: Recording.Preset
        def __init__(self, streams: _Optional[_Iterable[_Union[Recording.Stream, _Mapping]]] = ..., presets: _Optional[_Iterable[_Union[Recording.Preset, _Mapping]]] = ..., active_preset: _Optional[_Union[Recording.Preset, _Mapping]] = ...) -> None: ...
    class Preset(_message.Message):
        __slots__ = ("id", "name", "streams")
        ID_FIELD_NUMBER: _ClassVar[int]
        NAME_FIELD_NUMBER: _ClassVar[int]
        STREAMS_FIELD_NUMBER: _ClassVar[int]
        id: _uuid_pb2.UUID
        name: str
        streams: _containers.RepeatedCompositeFieldContainer[Recording.Stream]
        def __init__(self, id: _Optional[_Union[_uuid_pb2.UUID, _Mapping]] = ..., name: _Optional[str] = ..., streams: _Optional[_Iterable[_Union[Recording.Stream, _Mapping]]] = ...) -> None: ...
    class Stream(_message.Message):
        __slots__ = ("id", "encoder", "destinations", "audio_map", "isAudioCustomMapped", "output_screen")
        class Container(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
            __slots__ = ()
            CONTAINER_UNKNOWN: _ClassVar[Recording.Stream.Container]
            CONTAINER_MOV: _ClassVar[Recording.Stream.Container]
            CONTAINER_MP4: _ClassVar[Recording.Stream.Container]
        CONTAINER_UNKNOWN: Recording.Stream.Container
        CONTAINER_MOV: Recording.Stream.Container
        CONTAINER_MP4: Recording.Stream.Container
        class Codec(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
            __slots__ = ()
            CODEC_AUTOMATIC: _ClassVar[Recording.Stream.Codec]
            CODEC_H264: _ClassVar[Recording.Stream.Codec]
            CODEC_H265: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_422_PROXY: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_422_LT: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_422: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_422_HQ: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_4444: _ClassVar[Recording.Stream.Codec]
            CODEC_PRORES_4444_XQ: _ClassVar[Recording.Stream.Codec]
            CODEC_HAP: _ClassVar[Recording.Stream.Codec]
            CODEC_HAP_ALPHA: _ClassVar[Recording.Stream.Codec]
            CODEC_HAP_Q: _ClassVar[Recording.Stream.Codec]
            CODEC_HAP_Q_ALPHA: _ClassVar[Recording.Stream.Codec]
            CODEC_NOTCH: _ClassVar[Recording.Stream.Codec]
            CODEC_H264_SOFTWARE: _ClassVar[Recording.Stream.Codec]
            CODEC_H265_SOFTWARE: _ClassVar[Recording.Stream.Codec]
        CODEC_AUTOMATIC: Recording.Stream.Codec
        CODEC_H264: Recording.Stream.Codec
        CODEC_H265: Recording.Stream.Codec
        CODEC_PRORES_422_PROXY: Recording.Stream.Codec
        CODEC_PRORES_422_LT: Recording.Stream.Codec
        CODEC_PRORES_422: Recording.Stream.Codec
        CODEC_PRORES_422_HQ: Recording.Stream.Codec
        CODEC_PRORES_4444: Recording.Stream.Codec
        CODEC_PRORES_4444_XQ: Recording.Stream.Codec
        CODEC_HAP: Recording.Stream.Codec
        CODEC_HAP_ALPHA: Recording.Stream.Codec
        CODEC_HAP_Q: Recording.Stream.Codec
        CODEC_HAP_Q_ALPHA: Recording.Stream.Codec
        CODEC_NOTCH: Recording.Stream.Codec
        CODEC_H264_SOFTWARE: Recording.Stream.Codec
        CODEC_H265_SOFTWARE: Recording.Stream.Codec
        class FrameRate(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
            __slots__ = ()
            FRAME_RATE_UNKNOWN: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_24: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_25: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_29_97: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_30: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_50: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_59_94: _ClassVar[Recording.Stream.FrameRate]
            FRAME_RATE_60: _ClassVar[Recording.Stream.FrameRate]
        FRAME_RATE_UNKNOWN: Recording.Stream.FrameRate
        FRAME_RATE_24: Recording.Stream.FrameRate
        FRAME_RATE_25: Recording.Stream.FrameRate
        FRAME_RATE_29_97: Recording.Stream.FrameRate
        FRAME_RATE_30: Recording.Stream.FrameRate
        FRAME_RATE_50: Recording.Stream.FrameRate
        FRAME_RATE_59_94: Recording.Stream.FrameRate
        FRAME_RATE_60: Recording.Stream.FrameRate
        class Encoder(_message.Message):
            __slots__ = ("codec", "video_width", "video_height", "is_interlaced", "frameRate", "video_bitrate", "audio_bitrate")
            CODEC_FIELD_NUMBER: _ClassVar[int]
            VIDEO_WIDTH_FIELD_NUMBER: _ClassVar[int]
            VIDEO_HEIGHT_FIELD_NUMBER: _ClassVar[int]
            IS_INTERLACED_FIELD_NUMBER: _ClassVar[int]
            FRAMERATE_FIELD_NUMBER: _ClassVar[int]
            VIDEO_BITRATE_FIELD_NUMBER: _ClassVar[int]
            AUDIO_BITRATE_FIELD_NUMBER: _ClassVar[int]
            codec: Recording.Stream.Codec
            video_width: int
            video_height: int
            is_interlaced: bool
            frameRate: Recording.Stream.FrameRate
            video_bitrate: int
            audio_bitrate: int
            def __init__(self, codec: _Optional[_Union[Recording.Stream.Codec, str]] = ..., video_width: _Optional[int] = ..., video_height: _Optional[int] = ..., is_interlaced: bool = ..., frameRate: _Optional[_Union[Recording.Stream.FrameRate, str]] = ..., video_bitrate: _Optional[int] = ..., audio_bitrate: _Optional[int] = ...) -> None: ...
        class OutputScreenSource(_message.Message):
            __slots__ = ("screen_id", "screen_name")
            SCREEN_ID_FIELD_NUMBER: _ClassVar[int]
            SCREEN_NAME_FIELD_NUMBER: _ClassVar[int]
            screen_id: _uuid_pb2.UUID
            screen_name: str
            def __init__(self, screen_id: _Optional[_Union[_uuid_pb2.UUID, _Mapping]] = ..., screen_name: _Optional[str] = ...) -> None: ...
        class DiskDestination(_message.Message):
            __slots__ = ("location", "container")
            LOCATION_FIELD_NUMBER: _ClassVar[int]
            CONTAINER_FIELD_NUMBER: _ClassVar[int]
            location: _url_pb2.URL
            container: Recording.Stream.Container
            def __init__(self, location: _Optional[_Union[_url_pb2.URL, _Mapping]] = ..., container: _Optional[_Union[Recording.Stream.Container, str]] = ...) -> None: ...
        class RTMPDestination(_message.Message):
            __slots__ = ("address", "key")
            ADDRESS_FIELD_NUMBER: _ClassVar[int]
            KEY_FIELD_NUMBER: _ClassVar[int]
            address: str
            key: str
            def __init__(self, address: _Optional[str] = ..., key: _Optional[str] = ...) -> None: ...
        class Destination(_message.Message):
            __slots__ = ("disk", "rtmp", "resi")
            class Resi(_message.Message):
                __slots__ = ("destination_group_id", "encoder_profile_id")
                DESTINATION_GROUP_ID_FIELD_NUMBER: _ClassVar[int]
                ENCODER_PROFILE_ID_FIELD_NUMBER: _ClassVar[int]
                destination_group_id: _uuid_pb2.UUID
                encoder_profile_id: _uuid_pb2.UUID
                def __init__(self, destination_group_id: _Optional[_Union[_uuid_pb2.UUID, _Mapping]] = ..., encoder_profile_id: _Optional[_Union[_uuid_pb2.UUID, _Mapping]] = ...) -> None: ...
            DISK_FIELD_NUMBER: _ClassVar[int]
            RTMP_FIELD_NUMBER: _ClassVar[int]
            RESI_FIELD_NUMBER: _ClassVar[int]
            disk: Recording.Stream.DiskDestination
            rtmp: Recording.Stream.RTMPDestination
            resi: Recording.Stream.Destination.Resi
            def __init__(self, disk: _Optional[_Union[Recording.Stream.DiskDestination, _Mapping]] = ..., rtmp: _Optional[_Union[Recording.Stream.RTMPDestination, _Mapping]] = ..., resi: _Optional[_Union[Recording.Stream.Destination.Resi, _Mapping]] = ...) -> None: ...
        ID_FIELD_NUMBER: _ClassVar[int]
        ENCODER_FIELD_NUMBER: _ClassVar[int]
        DESTINATIONS_FIELD_NUMBER: _ClassVar[int]
        AUDIO_MAP_FIELD_NUMBER: _ClassVar[int]
        ISAUDIOCUSTOMMAPPED_FIELD_NUMBER: _ClassVar[int]
        OUTPUT_SCREEN_FIELD_NUMBER: _ClassVar[int]
        id: _uuid_pb2.UUID
        encoder: Recording.Stream.Encoder
        destinations: _containers.RepeatedCompositeFieldContainer[Recording.Stream.Destination]
        audio_map: _containers.RepeatedCompositeFieldContainer[_digitalAudio_pb2.DigitalAudio.Device.Map]
        isAudioCustomMapped: bool
        output_screen: Recording.Stream.OutputScreenSource
        def __init__(self, id: _Optional[_Union[_uuid_pb2.UUID, _Mapping]] = ..., encoder: _Optional[_Union[Recording.Stream.Encoder, _Mapping]] = ..., destinations: _Optional[_Iterable[_Union[Recording.Stream.Destination, _Mapping]]] = ..., audio_map: _Optional[_Iterable[_Union[_digitalAudio_pb2.DigitalAudio.Device.Map, _Mapping]]] = ..., isAudioCustomMapped: bool = ..., output_screen: _Optional[_Union[Recording.Stream.OutputScreenSource, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...
