"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import google.protobuf.struct_pb2
import google.protobuf.timestamp_pb2
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _PeerType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PeerTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PeerType.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PEER_TYPE_PUBLISHER_UNSPECIFIED: _PeerType.ValueType  # 0
    PEER_TYPE_SUBSCRIBER: _PeerType.ValueType  # 1

class PeerType(_PeerType, metaclass=_PeerTypeEnumTypeWrapper): ...

PEER_TYPE_PUBLISHER_UNSPECIFIED: PeerType.ValueType  # 0
PEER_TYPE_SUBSCRIBER: PeerType.ValueType  # 1
global___PeerType = PeerType

class _ConnectionQuality:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _ConnectionQualityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ConnectionQuality.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    CONNECTION_QUALITY_BAD_UNSPECIFIED: _ConnectionQuality.ValueType  # 0
    CONNECTION_QUALITY_POOR: _ConnectionQuality.ValueType  # 1
    CONNECTION_QUALITY_GOOD: _ConnectionQuality.ValueType  # 2

class ConnectionQuality(_ConnectionQuality, metaclass=_ConnectionQualityEnumTypeWrapper): ...

CONNECTION_QUALITY_BAD_UNSPECIFIED: ConnectionQuality.ValueType  # 0
CONNECTION_QUALITY_POOR: ConnectionQuality.ValueType  # 1
CONNECTION_QUALITY_GOOD: ConnectionQuality.ValueType  # 2
global___ConnectionQuality = ConnectionQuality

class _VideoQuality:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _VideoQualityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_VideoQuality.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    VIDEO_QUALITY_LOW_UNSPECIFIED: _VideoQuality.ValueType  # 0
    VIDEO_QUALITY_MID: _VideoQuality.ValueType  # 1
    VIDEO_QUALITY_HIGH: _VideoQuality.ValueType  # 2

class VideoQuality(_VideoQuality, metaclass=_VideoQualityEnumTypeWrapper): ...

VIDEO_QUALITY_LOW_UNSPECIFIED: VideoQuality.ValueType  # 0
VIDEO_QUALITY_MID: VideoQuality.ValueType  # 1
VIDEO_QUALITY_HIGH: VideoQuality.ValueType  # 2
global___VideoQuality = VideoQuality

class CallState(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARTICIPANTS_FIELD_NUMBER: builtins.int
    @property
    def participants(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Participant]: ...
    def __init__(
        self,
        *,
        participants: collections.abc.Iterable[global___Participant] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["participants", b"participants"]) -> None: ...

global___CallState = CallState

class Call(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    CREATED_BY_USER_ID_FIELD_NUMBER: builtins.int
    HOST_USER_ID_FIELD_NUMBER: builtins.int
    CUSTOM_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    type: builtins.str
    """the call type"""
    id: builtins.str
    """the call id"""
    created_by_user_id: builtins.str
    """the id of the user that created this call"""
    host_user_id: builtins.str
    """the id of the current host for this call"""
    @property
    def custom(self) -> google.protobuf.struct_pb2.Struct: ...
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        type: builtins.str = ...,
        id: builtins.str = ...,
        created_by_user_id: builtins.str = ...,
        host_user_id: builtins.str = ...,
        custom: google.protobuf.struct_pb2.Struct | None = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "custom", b"custom", "updated_at", b"updated_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "created_by_user_id", b"created_by_user_id", "custom", b"custom", "host_user_id", b"host_user_id", "id", b"id", "type", b"type", "updated_at", b"updated_at"]) -> None: ...

global___Call = Call

class Participant(google.protobuf.message.Message):
    """those who are online in the call"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    USER_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    ONLINE_FIELD_NUMBER: builtins.int
    CUSTOM_FIELD_NUMBER: builtins.int
    VIDEO_FIELD_NUMBER: builtins.int
    AUDIO_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    TRACK_LOOKUP_PREFIX_FIELD_NUMBER: builtins.int
    @property
    def user(self) -> global___User: ...
    role: builtins.str
    online: builtins.bool
    @property
    def custom(self) -> google.protobuf.struct_pb2.Struct: ...
    video: builtins.bool
    audio: builtins.bool
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    session_id: builtins.str
    track_lookup_prefix: builtins.str
    def __init__(
        self,
        *,
        user: global___User | None = ...,
        role: builtins.str = ...,
        online: builtins.bool = ...,
        custom: google.protobuf.struct_pb2.Struct | None = ...,
        video: builtins.bool = ...,
        audio: builtins.bool = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        updated_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        session_id: builtins.str = ...,
        track_lookup_prefix: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "custom", b"custom", "updated_at", b"updated_at", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["audio", b"audio", "created_at", b"created_at", "custom", b"custom", "online", b"online", "role", b"role", "session_id", b"session_id", "track_lookup_prefix", b"track_lookup_prefix", "updated_at", b"updated_at", "user", b"user", "video", b"video"]) -> None: ...

global___Participant = Participant

class User(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TEAMS_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    CUSTOM_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    IMAGE_URL_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    UPDATED_AT_FIELD_NUMBER: builtins.int
    id: builtins.str
    @property
    def teams(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    role: builtins.str
    @property
    def custom(self) -> google.protobuf.struct_pb2.Struct: ...
    name: builtins.str
    image_url: builtins.str
    created_at: builtins.str
    updated_at: builtins.str
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        teams: collections.abc.Iterable[builtins.str] | None = ...,
        role: builtins.str = ...,
        custom: google.protobuf.struct_pb2.Struct | None = ...,
        name: builtins.str = ...,
        image_url: builtins.str = ...,
        created_at: builtins.str = ...,
        updated_at: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["custom", b"custom"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "custom", b"custom", "id", b"id", "image_url", b"image_url", "name", b"name", "role", b"role", "teams", b"teams", "updated_at", b"updated_at"]) -> None: ...

global___User = User

class StreamQuality(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VIDEO_QUALITY_FIELD_NUMBER: builtins.int
    USER_ID_FIELD_NUMBER: builtins.int
    video_quality: global___VideoQuality.ValueType
    user_id: builtins.str
    def __init__(
        self,
        *,
        video_quality: global___VideoQuality.ValueType = ...,
        user_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["user_id", b"user_id", "video_quality", b"video_quality"]) -> None: ...

global___StreamQuality = StreamQuality

class VideoDimension(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    WIDTH_FIELD_NUMBER: builtins.int
    HEIGHT_FIELD_NUMBER: builtins.int
    width: builtins.int
    height: builtins.int
    def __init__(
        self,
        *,
        width: builtins.int = ...,
        height: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["height", b"height", "width", b"width"]) -> None: ...

global___VideoDimension = VideoDimension

class VideoLayer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RID_FIELD_NUMBER: builtins.int
    VIDEO_DIMENSION_FIELD_NUMBER: builtins.int
    BITRATE_FIELD_NUMBER: builtins.int
    rid: builtins.str
    """for tracks with a single layer, this should be HIGH"""
    @property
    def video_dimension(self) -> global___VideoDimension: ...
    bitrate: builtins.int
    """target bitrate, server will measure actual"""
    def __init__(
        self,
        *,
        rid: builtins.str = ...,
        video_dimension: global___VideoDimension | None = ...,
        bitrate: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["video_dimension", b"video_dimension"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bitrate", b"bitrate", "rid", b"rid", "video_dimension", b"video_dimension"]) -> None: ...

global___VideoLayer = VideoLayer

class SimulcastCodecInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MIME_TYPE_FIELD_NUMBER: builtins.int
    MID_FIELD_NUMBER: builtins.int
    CID_FIELD_NUMBER: builtins.int
    LAYERS_FIELD_NUMBER: builtins.int
    mime_type: builtins.str
    mid: builtins.str
    cid: builtins.str
    @property
    def layers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VideoLayer]: ...
    def __init__(
        self,
        *,
        mime_type: builtins.str = ...,
        mid: builtins.str = ...,
        cid: builtins.str = ...,
        layers: collections.abc.Iterable[global___VideoLayer] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cid", b"cid", "layers", b"layers", "mid", b"mid", "mime_type", b"mime_type"]) -> None: ...

global___SimulcastCodecInfo = SimulcastCodecInfo

class Codec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MIME_FIELD_NUMBER: builtins.int
    FMTP_LINE_FIELD_NUMBER: builtins.int
    CLOCK_RATE_FIELD_NUMBER: builtins.int
    HW_ACCELERATED_FIELD_NUMBER: builtins.int
    mime: builtins.str
    fmtp_line: builtins.str
    clock_rate: builtins.int
    hw_accelerated: builtins.bool
    def __init__(
        self,
        *,
        mime: builtins.str = ...,
        fmtp_line: builtins.str = ...,
        clock_rate: builtins.int = ...,
        hw_accelerated: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["clock_rate", b"clock_rate", "fmtp_line", b"fmtp_line", "hw_accelerated", b"hw_accelerated", "mime", b"mime"]) -> None: ...

global___Codec = Codec

class AudioCodecs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENCODES_FIELD_NUMBER: builtins.int
    DECODES_FIELD_NUMBER: builtins.int
    @property
    def encodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Codec]: ...
    @property
    def decodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Codec]: ...
    def __init__(
        self,
        *,
        encodes: collections.abc.Iterable[global___Codec] | None = ...,
        decodes: collections.abc.Iterable[global___Codec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["decodes", b"decodes", "encodes", b"encodes"]) -> None: ...

global___AudioCodecs = AudioCodecs

class VideoCodecs(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENCODES_FIELD_NUMBER: builtins.int
    DECODES_FIELD_NUMBER: builtins.int
    @property
    def encodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Codec]: ...
    @property
    def decodes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Codec]: ...
    def __init__(
        self,
        *,
        encodes: collections.abc.Iterable[global___Codec] | None = ...,
        decodes: collections.abc.Iterable[global___Codec] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["decodes", b"decodes", "encodes", b"encodes"]) -> None: ...

global___VideoCodecs = VideoCodecs

class CodecSettings(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AUDIO_FIELD_NUMBER: builtins.int
    VIDEO_FIELD_NUMBER: builtins.int
    LAYERS_FIELD_NUMBER: builtins.int
    @property
    def audio(self) -> global___AudioCodecs: ...
    @property
    def video(self) -> global___VideoCodecs: ...
    @property
    def layers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VideoLayer]: ...
    def __init__(
        self,
        *,
        audio: global___AudioCodecs | None = ...,
        video: global___VideoCodecs | None = ...,
        layers: collections.abc.Iterable[global___VideoLayer] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["audio", b"audio", "video", b"video"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["audio", b"audio", "layers", b"layers", "video", b"video"]) -> None: ...

global___CodecSettings = CodecSettings

class ICETrickle(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PEER_TYPE_FIELD_NUMBER: builtins.int
    ICE_CANDIDATE_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    peer_type: global___PeerType.ValueType
    ice_candidate: builtins.str
    session_id: builtins.str
    def __init__(
        self,
        *,
        peer_type: global___PeerType.ValueType = ...,
        ice_candidate: builtins.str = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["ice_candidate", b"ice_candidate", "peer_type", b"peer_type", "session_id", b"session_id"]) -> None: ...

global___ICETrickle = ICETrickle
