"""
@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.message
import sys
import typing
import video.sfu.models.models_pb2

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

    STREAM_QUALITIES_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    @property
    def stream_qualities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[video.sfu.models.models_pb2.StreamQuality]: ...
    session_id: builtins.str
    def __init__(
        self,
        *,
        stream_qualities: collections.abc.Iterable[video.sfu.models.models_pb2.StreamQuality] | None = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["session_id", b"session_id", "stream_qualities", b"stream_qualities"]) -> None: ...

global___UpdateVideoQualityRequest = UpdateVideoQualityRequest

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

    def __init__(
        self,
    ) -> None: ...

global___UpdateVideoQualityResponse = UpdateVideoQualityResponse

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

    SESSION_ID_FIELD_NUMBER: builtins.int
    AUDIO_MUTE_CHANGED_FIELD_NUMBER: builtins.int
    VIDEO_MUTE_CHANGED_FIELD_NUMBER: builtins.int
    session_id: builtins.str
    @property
    def audio_mute_changed(self) -> global___AudioMuteChanged: ...
    @property
    def video_mute_changed(self) -> global___VideoMuteChanged: ...
    def __init__(
        self,
        *,
        session_id: builtins.str = ...,
        audio_mute_changed: global___AudioMuteChanged | None = ...,
        video_mute_changed: global___VideoMuteChanged | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["audio_mute_changed", b"audio_mute_changed", "mute", b"mute", "video_mute_changed", b"video_mute_changed"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["audio_mute_changed", b"audio_mute_changed", "mute", b"mute", "session_id", b"session_id", "video_mute_changed", b"video_mute_changed"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["mute", b"mute"]) -> typing_extensions.Literal["audio_mute_changed", "video_mute_changed"] | None: ...

global___UpdateMuteStateRequest = UpdateMuteStateRequest

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

    def __init__(
        self,
    ) -> None: ...

global___UpdateMuteStateResponse = UpdateMuteStateResponse

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

    MUTED_FIELD_NUMBER: builtins.int
    muted: builtins.bool
    def __init__(
        self,
        *,
        muted: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["muted", b"muted"]) -> None: ...

global___AudioMuteChanged = AudioMuteChanged

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

    MUTED_FIELD_NUMBER: builtins.int
    muted: builtins.bool
    def __init__(
        self,
        *,
        muted: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["muted", b"muted"]) -> None: ...

global___VideoMuteChanged = VideoMuteChanged

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

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> video.sfu.models.models_pb2.VideoDimension: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: video.sfu.models.models_pb2.VideoDimension | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    SUBSCRIPTIONS_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    @property
    def subscriptions(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, video.sfu.models.models_pb2.VideoDimension]:
        """maps stream user_ids to its size"""
    session_id: builtins.str
    def __init__(
        self,
        *,
        subscriptions: collections.abc.Mapping[builtins.str, video.sfu.models.models_pb2.VideoDimension] | None = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["session_id", b"session_id", "subscriptions", b"subscriptions"]) -> None: ...

global___UpdateSubscriptionsRequest = UpdateSubscriptionsRequest

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

    PEER_TYPE_FIELD_NUMBER: builtins.int
    SDP_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    peer_type: video.sfu.models.models_pb2.PeerType.ValueType
    sdp: builtins.str
    session_id: builtins.str
    def __init__(
        self,
        *,
        peer_type: video.sfu.models.models_pb2.PeerType.ValueType = ...,
        sdp: builtins.str = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["peer_type", b"peer_type", "sdp", b"sdp", "session_id", b"session_id"]) -> None: ...

global___SendAnswerRequest = SendAnswerRequest

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

    def __init__(
        self,
    ) -> None: ...

global___SendAnswerResponse = SendAnswerResponse

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

    PUBLISHER_FIELD_NUMBER: builtins.int
    CANDIDATE_FIELD_NUMBER: builtins.int
    SDP_MID_FIELD_NUMBER: builtins.int
    SDP_MLINE_INDEX_FIELD_NUMBER: builtins.int
    USERNAME_FRAGMENT_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    publisher: builtins.bool
    """TODO: use PeerTYPE!"""
    candidate: builtins.str
    sdp_mid: builtins.str
    sdp_mline_index: builtins.int
    username_fragment: builtins.str
    session_id: builtins.str
    def __init__(
        self,
        *,
        publisher: builtins.bool = ...,
        candidate: builtins.str = ...,
        sdp_mid: builtins.str | None = ...,
        sdp_mline_index: builtins.int | None = ...,
        username_fragment: builtins.str | None = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["_sdp_mid", b"_sdp_mid", "_sdp_mline_index", b"_sdp_mline_index", "_username_fragment", b"_username_fragment", "sdp_mid", b"sdp_mid", "sdp_mline_index", b"sdp_mline_index", "username_fragment", b"username_fragment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["_sdp_mid", b"_sdp_mid", "_sdp_mline_index", b"_sdp_mline_index", "_username_fragment", b"_username_fragment", "candidate", b"candidate", "publisher", b"publisher", "sdp_mid", b"sdp_mid", "sdp_mline_index", b"sdp_mline_index", "session_id", b"session_id", "username_fragment", b"username_fragment"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sdp_mid", b"_sdp_mid"]) -> typing_extensions.Literal["sdp_mid"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_sdp_mline_index", b"_sdp_mline_index"]) -> typing_extensions.Literal["sdp_mline_index"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["_username_fragment", b"_username_fragment"]) -> typing_extensions.Literal["username_fragment"] | None: ...

global___IceCandidateRequest = IceCandidateRequest

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

    def __init__(
        self,
    ) -> None: ...

global___ICETrickleResponse = ICETrickleResponse

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

    def __init__(
        self,
    ) -> None: ...

global___UpdateSubscriptionsResponse = UpdateSubscriptionsResponse

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

    SDP_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    sdp: builtins.str
    """sdp offer"""
    session_id: builtins.str
    def __init__(
        self,
        *,
        sdp: builtins.str = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp", b"sdp", "session_id", b"session_id"]) -> None: ...

global___SetPublisherRequest = SetPublisherRequest

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

    SDP_FIELD_NUMBER: builtins.int
    SESSION_ID_FIELD_NUMBER: builtins.int
    sdp: builtins.str
    """sdp answer"""
    session_id: builtins.str
    def __init__(
        self,
        *,
        sdp: builtins.str = ...,
        session_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp", b"sdp", "session_id", b"session_id"]) -> None: ...

global___SetPublisherResponse = SetPublisherResponse

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

    SDP_OFFER_FIELD_NUMBER: builtins.int
    TOKEN_FIELD_NUMBER: builtins.int
    sdp_offer: builtins.str
    """peer connection sdp offer"""
    token: builtins.str
    """token used for authentication"""
    def __init__(
        self,
        *,
        sdp_offer: builtins.str = ...,
        token: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp_offer", b"sdp_offer", "token", b"token"]) -> None: ...

global___ConnectRequest = ConnectRequest

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

    SDP_ANSWER_FIELD_NUMBER: builtins.int
    sdp_answer: builtins.str
    """sdp answer"""
    def __init__(
        self,
        *,
        sdp_answer: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp_answer", b"sdp_answer"]) -> None: ...

global___ConnectResponse = ConnectResponse

class SignalRequest(google.protobuf.message.Message):
    """Signaling related payload, all these messages will be exchanged using signaling channel"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SUBSCRIBE_FIELD_NUMBER: builtins.int
    PUBLISH_FIELD_NUMBER: builtins.int
    @property
    def subscribe(self) -> global___SubscribeRequest: ...
    @property
    def publish(self) -> global___PublishRequest: ...
    def __init__(
        self,
        *,
        subscribe: global___SubscribeRequest | None = ...,
        publish: global___PublishRequest | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["event_payload", b"event_payload", "publish", b"publish", "subscribe", b"subscribe"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["event_payload", b"event_payload", "publish", b"publish", "subscribe", b"subscribe"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["event_payload", b"event_payload"]) -> typing_extensions.Literal["subscribe", "publish"] | None: ...

global___SignalRequest = SignalRequest

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

    SUBSCRIBE_FIELD_NUMBER: builtins.int
    PUBLISH_FIELD_NUMBER: builtins.int
    @property
    def subscribe(self) -> global___SubscribeResponse: ...
    @property
    def publish(self) -> global___PublishResponse: ...
    def __init__(
        self,
        *,
        subscribe: global___SubscribeResponse | None = ...,
        publish: global___PublishResponse | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["event_payload", b"event_payload", "publish", b"publish", "subscribe", b"subscribe"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["event_payload", b"event_payload", "publish", b"publish", "subscribe", b"subscribe"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["event_payload", b"event_payload"]) -> typing_extensions.Literal["subscribe", "publish"] | None: ...

global___SignalEvent = SignalEvent

class SubscribeRequest(google.protobuf.message.Message):
    """SubscribeRequest"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOKEN_FIELD_NUMBER: builtins.int
    SDP_OFFER_FIELD_NUMBER: builtins.int
    QUALITY_FIELD_NUMBER: builtins.int
    token: builtins.str
    sdp_offer: builtins.str
    quality: builtins.str
    """preferred quality"""
    def __init__(
        self,
        *,
        token: builtins.str = ...,
        sdp_offer: builtins.str = ...,
        quality: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["quality", b"quality", "sdp_offer", b"sdp_offer", "token", b"token"]) -> None: ...

global___SubscribeRequest = SubscribeRequest

class SubscribeResponse(google.protobuf.message.Message):
    """SubscribeResponse"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    QUALITY_FIELD_NUMBER: builtins.int
    quality: builtins.str
    """preferred quality"""
    def __init__(
        self,
        *,
        quality: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["quality", b"quality"]) -> None: ...

global___SubscribeResponse = SubscribeResponse

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

    TOKEN_FIELD_NUMBER: builtins.int
    SDP_OFFER_FIELD_NUMBER: builtins.int
    token: builtins.str
    sdp_offer: builtins.str
    def __init__(
        self,
        *,
        token: builtins.str = ...,
        sdp_offer: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp_offer", b"sdp_offer", "token", b"token"]) -> None: ...

global___PublishRequest = PublishRequest

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

    SDP_ANSWER_FIELD_NUMBER: builtins.int
    sdp_answer: builtins.str
    def __init__(
        self,
        *,
        sdp_answer: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["sdp_answer", b"sdp_answer"]) -> None: ...

global___PublishResponse = PublishResponse
