import { MessageType } from '@protobuf-ts/runtime'; import { CallEndedReason, CallGrants, CallState, ClientCapability, ClientDetails, Codec, ConnectionQuality, Error as Error$, GoAwayReason, ICETrickle as ICETrickle$, Participant, ParticipantCount, ParticipantSource, PeerType, Pin, PublishOption, SubscribeOption, TrackInfo, TrackType, TrackUnpublishReason, WebsocketReconnectStrategy } from '../models/models'; import { TrackSubscriptionDetails } from '../signal_rpc/signal'; /** * SFUEvent is a message that is sent from the SFU to the client. * * @generated from protobuf message stream.video.sfu.event.SfuEvent */ export interface SfuEvent { /** * @generated from protobuf oneof: event_payload */ eventPayload: { oneofKind: 'subscriberOffer'; /** * SubscriberOffer sends the SDP offer for establishing the * subscriber PeerConnection. * * @generated from protobuf field: stream.video.sfu.event.SubscriberOffer subscriber_offer = 1; */ subscriberOffer: SubscriberOffer; } | { oneofKind: 'publisherAnswer'; /** * PublisherAnswer sends the SDP answer to the offer sent by * the client for establishing the Publisher PeerConnection. * * @generated from protobuf field: stream.video.sfu.event.PublisherAnswer publisher_answer = 2; */ publisherAnswer: PublisherAnswer; } | { oneofKind: 'connectionQualityChanged'; /** * ConnectionQualityChanged is sent to inform the connection * quality of the participants in the call. It does not have * to contain the full list of call participants in it. * * @generated from protobuf field: stream.video.sfu.event.ConnectionQualityChanged connection_quality_changed = 3; */ connectionQualityChanged: ConnectionQualityChanged; } | { oneofKind: 'audioLevelChanged'; /** * AudioLevelChanged is sent for change in audio levels of * the participants. * * @generated from protobuf field: stream.video.sfu.event.AudioLevelChanged audio_level_changed = 4; */ audioLevelChanged: AudioLevelChanged; } | { oneofKind: 'iceTrickle'; /** * ICETrickle contains the ICE candidate required to establish * the ICE transport: part of establishing the PeerConnection * and also for ICE restarts. * * @generated from protobuf field: stream.video.sfu.models.ICETrickle ice_trickle = 5; */ iceTrickle: ICETrickle$; } | { oneofKind: 'changePublishQuality'; /** * ChangePublishQuality advises the publisher to switch on/off * various qualities of their video stream based on the subscription. * This is done to save the bandwidth and the CPU of the publisher. * * @generated from protobuf field: stream.video.sfu.event.ChangePublishQuality change_publish_quality = 6; */ changePublishQuality: ChangePublishQuality; } | { oneofKind: 'participantJoined'; /** * ParticipantJoined notifies the client that a new participant * has joined the call. This is not sent for anonymous users. * * @generated from protobuf field: stream.video.sfu.event.ParticipantJoined participant_joined = 10; */ participantJoined: ParticipantJoined; } | { oneofKind: 'participantLeft'; /** * ParticipantLeft notifies the client that a call participant * has left the call. This is not sent for anonymous users. * * @generated from protobuf field: stream.video.sfu.event.ParticipantLeft participant_left = 11; */ participantLeft: ParticipantLeft; } | { oneofKind: 'dominantSpeakerChanged'; /** * DominantSpeakerChanged notifies the client about the current * dominant speaker. This is required for certain use cases like * the spotlight view. * * @generated from protobuf field: stream.video.sfu.event.DominantSpeakerChanged dominant_speaker_changed = 12; */ dominantSpeakerChanged: DominantSpeakerChanged; } | { oneofKind: 'joinResponse'; /** * JoinResponse acknowledges a participant successfully joining * the call. This is sent in response to the JoinRequest. * * @generated from protobuf field: stream.video.sfu.event.JoinResponse join_response = 13; */ joinResponse: JoinResponse; } | { oneofKind: 'healthCheckResponse'; /** * HealthCheckResponse is sent in response to the HealthCheckRequest. * It contains the participant count in the call. * * @generated from protobuf field: stream.video.sfu.event.HealthCheckResponse health_check_response = 14; */ healthCheckResponse: HealthCheckResponse; } | { oneofKind: 'trackPublished'; /** * TrackPublished is sent when a new track (like audio, video, screenshare) * is published by a participant in the call. It is also sent on mute/unmute. * * @generated from protobuf field: stream.video.sfu.event.TrackPublished track_published = 16; */ trackPublished: TrackPublished; } | { oneofKind: 'trackUnpublished'; /** * TrackUnpublished is sent when a track (like audio, video, screenshare) * is no longer published. It is sent on muting a track or when the participant * is leaving the call. * * @generated from protobuf field: stream.video.sfu.event.TrackUnpublished track_unpublished = 17; */ trackUnpublished: TrackUnpublished; } | { oneofKind: 'error'; /** * Error is used to communicate any error related to the participant. The * error code and the message explain what went wrong. Whether the participant * can retry is also indicated. * * @generated from protobuf field: stream.video.sfu.event.Error error = 18; */ error: Error; } | { oneofKind: 'callGrantsUpdated'; /** * CallGrantsUpdated tells what tracks a participant is allowed to publish. * * @generated from protobuf field: stream.video.sfu.event.CallGrantsUpdated call_grants_updated = 19; */ callGrantsUpdated: CallGrantsUpdated; } | { oneofKind: 'goAway'; /** * GoAway tells the client to migrate away from the SFU it is connected to. * The reason field indicates why this message was sent. * * @generated from protobuf field: stream.video.sfu.event.GoAway go_away = 20; */ goAway: GoAway; } | { oneofKind: 'iceRestart'; /** * ICERestart tells the client to perform ICE restart. * * @generated from protobuf field: stream.video.sfu.event.ICERestart ice_restart = 21; */ iceRestart: ICERestart; } | { oneofKind: 'pinsUpdated'; /** * PinsChanged is sent the list of pins in the call changes. This event contains the entire list of pins. * * @generated from protobuf field: stream.video.sfu.event.PinsChanged pins_updated = 22; */ pinsUpdated: PinsChanged; } | { oneofKind: 'callEnded'; /** * CallEnded is sent by the SFU to the client to signal that the call has ended. * The reason may specify why the call has ended. * * @generated from protobuf field: stream.video.sfu.event.CallEnded call_ended = 23; */ callEnded: CallEnded; } | { oneofKind: 'participantUpdated'; /** * ParticipantUpdated is sent when user data is updated * * @generated from protobuf field: stream.video.sfu.event.ParticipantUpdated participant_updated = 24; */ participantUpdated: ParticipantUpdated; } | { oneofKind: 'participantMigrationComplete'; /** * ParticipantMigrationComplete is sent when the participant migration is complete * * @generated from protobuf field: stream.video.sfu.event.ParticipantMigrationComplete participant_migration_complete = 25; */ participantMigrationComplete: ParticipantMigrationComplete; } | { oneofKind: 'changePublishOptions'; /** * ChangePublishOptions is sent to signal the change in publish options such as a new codec or simulcast layers * * @generated from protobuf field: stream.video.sfu.event.ChangePublishOptions change_publish_options = 27; */ changePublishOptions: ChangePublishOptions; } | { oneofKind: 'inboundStateNotification'; /** * InboundStateNotification * * @generated from protobuf field: stream.video.sfu.event.InboundStateNotification inbound_state_notification = 28; */ inboundStateNotification: InboundStateNotification; } | { oneofKind: undefined; }; } /** * @generated from protobuf message stream.video.sfu.event.ChangePublishOptions */ export interface ChangePublishOptions { /** * @generated from protobuf field: repeated stream.video.sfu.models.PublishOption publish_options = 1; */ publishOptions: PublishOption[]; /** * @generated from protobuf field: string reason = 2; */ reason: string; } /** * @generated from protobuf message stream.video.sfu.event.ChangePublishOptionsComplete */ export interface ChangePublishOptionsComplete { } /** * @generated from protobuf message stream.video.sfu.event.ParticipantMigrationComplete */ export interface ParticipantMigrationComplete { } /** * @generated from protobuf message stream.video.sfu.event.PinsChanged */ export interface PinsChanged { /** * the list of pins in the call. * Pins are ordered in descending order (most important first). * * @generated from protobuf field: repeated stream.video.sfu.models.Pin pins = 1; */ pins: Pin[]; } /** * @generated from protobuf message stream.video.sfu.event.Error */ export interface Error { /** * @generated from protobuf field: stream.video.sfu.models.Error error = 4; */ error?: Error$; /** * returns the reconnect strategy to be used by the client * * @generated from protobuf field: stream.video.sfu.models.WebsocketReconnectStrategy reconnect_strategy = 5; */ reconnectStrategy: WebsocketReconnectStrategy; } /** * @generated from protobuf message stream.video.sfu.event.ICETrickle */ export interface ICETrickle { /** * @generated from protobuf field: stream.video.sfu.models.PeerType peer_type = 1; */ peerType: PeerType; /** * @generated from protobuf field: string ice_candidate = 2; */ iceCandidate: string; } /** * @generated from protobuf message stream.video.sfu.event.ICERestart */ export interface ICERestart { /** * @generated from protobuf field: stream.video.sfu.models.PeerType peer_type = 1; */ peerType: PeerType; } /** * SfuRequest is a message that is sent from the client to the SFU. * * @generated from protobuf message stream.video.sfu.event.SfuRequest */ export interface SfuRequest { /** * @generated from protobuf oneof: request_payload */ requestPayload: { oneofKind: 'joinRequest'; /** * @generated from protobuf field: stream.video.sfu.event.JoinRequest join_request = 1; */ joinRequest: JoinRequest; } | { oneofKind: 'healthCheckRequest'; /** * @generated from protobuf field: stream.video.sfu.event.HealthCheckRequest health_check_request = 2; */ healthCheckRequest: HealthCheckRequest; } | { oneofKind: 'leaveCallRequest'; /** * @generated from protobuf field: stream.video.sfu.event.LeaveCallRequest leave_call_request = 3; */ leaveCallRequest: LeaveCallRequest; } | { oneofKind: undefined; }; } /** * @generated from protobuf message stream.video.sfu.event.LeaveCallRequest */ export interface LeaveCallRequest { /** * @generated from protobuf field: string session_id = 1; */ sessionId: string; /** * @generated from protobuf field: string reason = 2; */ reason: string; } /** * @generated from protobuf message stream.video.sfu.event.HealthCheckRequest */ export interface HealthCheckRequest { } /** * @generated from protobuf message stream.video.sfu.event.HealthCheckResponse */ export interface HealthCheckResponse { /** * @generated from protobuf field: stream.video.sfu.models.ParticipantCount participant_count = 1; */ participantCount?: ParticipantCount; } /** * @generated from protobuf message stream.video.sfu.event.TrackPublished */ export interface TrackPublished { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * @generated from protobuf field: stream.video.sfu.models.TrackType type = 3; */ type: TrackType; /** * Participant information here is included as an optimisation * for large calls where broadcasting on every participant join * is expensive. You should **NOT** assume that this will always * be available though you can use it to update the participant * list when it is there. * * @generated from protobuf field: stream.video.sfu.models.Participant participant = 4; */ participant?: Participant; } /** * @generated from protobuf message stream.video.sfu.event.TrackUnpublished */ export interface TrackUnpublished { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * @generated from protobuf field: stream.video.sfu.models.TrackType type = 3; */ type: TrackType; /** * @generated from protobuf field: stream.video.sfu.models.TrackUnpublishReason cause = 4; */ cause: TrackUnpublishReason; /** * Participant information here is included as an optimisation * for large calls where broadcasting on every participant join * is expensive. You should **NOT** assume that this will always * be available though you can use it to update the participant * list when it is there. * * @generated from protobuf field: stream.video.sfu.models.Participant participant = 5; */ participant?: Participant; } /** * @generated from protobuf message stream.video.sfu.event.JoinRequest */ export interface JoinRequest { /** * @generated from protobuf field: string token = 1; */ token: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * user_session id can change during reconnects, this helps us to * identify the user across reconnects and should remain consistent until the user explicitly * disconnects, is kicked or the call is ended. * * @generated from protobuf field: string unified_session_id = 13; */ unifiedSessionId: string; /** * dumb SDP that allow us to extract subscriber's decode codecs * * @generated from protobuf field: string subscriber_sdp = 3; */ subscriberSdp: string; /** * @generated from protobuf field: string publisher_sdp = 8; */ publisherSdp: string; /** * @generated from protobuf field: stream.video.sfu.models.ClientDetails client_details = 4; */ clientDetails?: ClientDetails; /** * Deprecated: use ReconnectDetails instead * * @deprecated * @generated from protobuf field: stream.video.sfu.event.Migration migration = 5 [deprecated = true]; */ migration?: Migration; /** * Fast reconnect flag explicitly indicates that if the participant session * and the associated state is still present in the SFU, the client is ready * to restore the PeerConnection with an ICE restart. If the SFU replies with * "reconnected: true" in its JoinResponse, then it is safe to perform an ICE * restart or else the existing PeerConnections must be cleaned up. * * For the SFU, fast_reconnect:false indicates that even if it has the state * cached, the client state is not in sync and hence it must be cleaned up before * proceeding further. * * @deprecated * @generated from protobuf field: bool fast_reconnect = 6 [deprecated = true]; */ fastReconnect: boolean; /** * @generated from protobuf field: stream.video.sfu.event.ReconnectDetails reconnect_details = 7; */ reconnectDetails?: ReconnectDetails; /** * @generated from protobuf field: repeated stream.video.sfu.models.PublishOption preferred_publish_options = 9; */ preferredPublishOptions: PublishOption[]; /** * @generated from protobuf field: repeated stream.video.sfu.models.SubscribeOption preferred_subscribe_options = 10; */ preferredSubscribeOptions: SubscribeOption[]; /** * @generated from protobuf field: repeated stream.video.sfu.models.ClientCapability capabilities = 11; */ capabilities: ClientCapability[]; /** * @generated from protobuf field: stream.video.sfu.models.ParticipantSource source = 12; */ source: ParticipantSource; } /** * @generated from protobuf message stream.video.sfu.event.ReconnectDetails */ export interface ReconnectDetails { /** * @generated from protobuf field: stream.video.sfu.models.WebsocketReconnectStrategy strategy = 1; */ strategy: WebsocketReconnectStrategy; /** * @generated from protobuf field: repeated stream.video.sfu.models.TrackInfo announced_tracks = 3; */ announcedTracks: TrackInfo[]; /** * @generated from protobuf field: repeated stream.video.sfu.signal.TrackSubscriptionDetails subscriptions = 4; */ subscriptions: TrackSubscriptionDetails[]; /** * @generated from protobuf field: uint32 reconnect_attempt = 5; */ reconnectAttempt: number; /** * @generated from protobuf field: string from_sfu_id = 6; */ fromSfuId: string; /** * only set in case of rejoin * * @generated from protobuf field: string previous_session_id = 7; */ previousSessionId: string; /** * the reconnect reason * * @generated from protobuf field: string reason = 8; */ reason: string; } /** * @generated from protobuf message stream.video.sfu.event.Migration */ export interface Migration { /** * @generated from protobuf field: string from_sfu_id = 1; */ fromSfuId: string; /** * @generated from protobuf field: repeated stream.video.sfu.models.TrackInfo announced_tracks = 2; */ announcedTracks: TrackInfo[]; /** * @generated from protobuf field: repeated stream.video.sfu.signal.TrackSubscriptionDetails subscriptions = 3; */ subscriptions: TrackSubscriptionDetails[]; } /** * @generated from protobuf message stream.video.sfu.event.JoinResponse */ export interface JoinResponse { /** * @generated from protobuf field: stream.video.sfu.models.CallState call_state = 1; */ callState?: CallState; /** * @generated from protobuf field: bool reconnected = 2; */ reconnected: boolean; /** * @generated from protobuf field: int32 fast_reconnect_deadline_seconds = 3; */ fastReconnectDeadlineSeconds: number; /** * @generated from protobuf field: repeated stream.video.sfu.models.PublishOption publish_options = 4; */ publishOptions: PublishOption[]; } /** * ParticipantJoined is fired when a user joins a call * * @generated from protobuf message stream.video.sfu.event.ParticipantJoined */ export interface ParticipantJoined { /** * @generated from protobuf field: string call_cid = 1; */ callCid: string; /** * @generated from protobuf field: stream.video.sfu.models.Participant participant = 2; */ participant?: Participant; /** * @generated from protobuf field: bool is_pinned = 3; */ isPinned: boolean; } /** * ParticipantJoined is fired when a user leaves a call * * @generated from protobuf message stream.video.sfu.event.ParticipantLeft */ export interface ParticipantLeft { /** * @generated from protobuf field: string call_cid = 1; */ callCid: string; /** * @generated from protobuf field: stream.video.sfu.models.Participant participant = 2; */ participant?: Participant; } /** * ParticipantUpdated is fired when user data is updated * * @generated from protobuf message stream.video.sfu.event.ParticipantUpdated */ export interface ParticipantUpdated { /** * @generated from protobuf field: string call_cid = 1; */ callCid: string; /** * @generated from protobuf field: stream.video.sfu.models.Participant participant = 2; */ participant?: Participant; } /** * SubscriberOffer is sent when the SFU adds tracks to a subscription * * @generated from protobuf message stream.video.sfu.event.SubscriberOffer */ export interface SubscriberOffer { /** * @generated from protobuf field: bool ice_restart = 1; */ iceRestart: boolean; /** * @generated from protobuf field: string sdp = 2; */ sdp: string; } /** * @generated from protobuf message stream.video.sfu.event.PublisherAnswer */ export interface PublisherAnswer { /** * @generated from protobuf field: string sdp = 1; */ sdp: string; } /** * ConnectionQuality is sent to inform about connection quality changes * eg. thierry's connection is not good -> render a red icon Zoom style * * @generated from protobuf message stream.video.sfu.event.ConnectionQualityChanged */ export interface ConnectionQualityChanged { /** * @generated from protobuf field: repeated stream.video.sfu.event.ConnectionQualityInfo connection_quality_updates = 1; */ connectionQualityUpdates: ConnectionQualityInfo[]; } /** * @generated from protobuf message stream.video.sfu.event.ConnectionQualityInfo */ export interface ConnectionQualityInfo { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * @generated from protobuf field: stream.video.sfu.models.ConnectionQuality connection_quality = 3; */ connectionQuality: ConnectionQuality; } /** * DominantSpeakerChanged is sent by the SFU to notify when there is a new dominant speaker in the call * * @generated from protobuf message stream.video.sfu.event.DominantSpeakerChanged */ export interface DominantSpeakerChanged { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; } /** * @generated from protobuf message stream.video.sfu.event.AudioLevel */ export interface AudioLevel { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * 0.0 means complete silence, 1.0 loudest * * @generated from protobuf field: float level = 3; */ level: number; /** * @generated from protobuf field: bool is_speaking = 4; */ isSpeaking: boolean; } /** * AudioLevelChanged is sent by the SFU to notify about audio levels by user * * @generated from protobuf message stream.video.sfu.event.AudioLevelChanged */ export interface AudioLevelChanged { /** * @generated from protobuf field: repeated stream.video.sfu.event.AudioLevel audio_levels = 1; */ audioLevels: AudioLevel[]; } /** * @generated from protobuf message stream.video.sfu.event.AudioSender */ export interface AudioSender { /** * @generated from protobuf field: stream.video.sfu.models.Codec codec = 2; */ codec?: Codec; /** * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 3; */ trackType: TrackType; /** * @generated from protobuf field: int32 publish_option_id = 4; */ publishOptionId: number; } /** * VideoLayerSetting is used to specify various parameters of a particular encoding in simulcast. * The parameters are specified here - https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpEncodingParameters * SDKs use these parameters sent from the server to dynamically adjust these parameters to save CPU, bandwidth * * @generated from protobuf message stream.video.sfu.event.VideoLayerSetting */ export interface VideoLayerSetting { /** * @generated from protobuf field: string name = 1; */ name: string; /** * @generated from protobuf field: bool active = 2; */ active: boolean; /** * @generated from protobuf field: int32 max_bitrate = 3; */ maxBitrate: number; /** * @generated from protobuf field: float scale_resolution_down_by = 4; */ scaleResolutionDownBy: number; /** * @generated from protobuf field: stream.video.sfu.models.Codec codec = 6; */ codec?: Codec; /** * @generated from protobuf field: uint32 max_framerate = 7; */ maxFramerate: number; /** * @generated from protobuf field: string scalability_mode = 8; */ scalabilityMode: string; } /** * @generated from protobuf message stream.video.sfu.event.VideoSender */ export interface VideoSender { /** * @generated from protobuf field: stream.video.sfu.models.Codec codec = 2; */ codec?: Codec; /** * @generated from protobuf field: repeated stream.video.sfu.event.VideoLayerSetting layers = 3; */ layers: VideoLayerSetting[]; /** * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 4; */ trackType: TrackType; /** * @generated from protobuf field: int32 publish_option_id = 5; */ publishOptionId: number; } /** * sent to users when they need to change the quality of their video * * @generated from protobuf message stream.video.sfu.event.ChangePublishQuality */ export interface ChangePublishQuality { /** * @generated from protobuf field: repeated stream.video.sfu.event.AudioSender audio_senders = 1; */ audioSenders: AudioSender[]; /** * @generated from protobuf field: repeated stream.video.sfu.event.VideoSender video_senders = 2; */ videoSenders: VideoSender[]; } /** * CallGrants is sent to users when there is a change in the call permissions * to publish audio, video or share the screen for a user or a role. This is * idempotent and can be sent at any time. Only the current_grants in the latest * message should be considered. In other words, this is not dependent on any * other message (including previous call_grants_updated message) * * When this message is received, the client (say, React component) should mute * the tracks which are not allowed anymore. For example, if the message has * grants {audio:true, video:false} while the user is publishing video, then the * client component should mute the video track and gray out the video button. * This way, the user will not be able to publish video until the permissions * are granted again. Also, muting the track on the client side will prevent * the SFU from receiving the video track and will save bandwidth. * * In simple words, this is exactly the same as muting a track on the client. * Here, instead of the user instructing the client, SFU would be doing it. * * @generated from protobuf message stream.video.sfu.event.CallGrantsUpdated */ export interface CallGrantsUpdated { /** * @generated from protobuf field: stream.video.sfu.models.CallGrants current_grants = 1; */ currentGrants?: CallGrants; /** * @generated from protobuf field: string message = 2; */ message: string; } /** * Go away is sent by the SFU to the client to signal to migrate away from the SFU. * The evict reason may specify why the user is being evicted. * * @generated from protobuf message stream.video.sfu.event.GoAway */ export interface GoAway { /** * @generated from protobuf field: stream.video.sfu.models.GoAwayReason reason = 1; */ reason: GoAwayReason; } /** * CallEnded is sent by the SFU to the client to signal that the call has ended. * The reason may specify why the call has ended. * * @generated from protobuf message stream.video.sfu.event.CallEnded */ export interface CallEnded { /** * @generated from protobuf field: stream.video.sfu.models.CallEndedReason reason = 1; */ reason: CallEndedReason; } /** * @generated from protobuf message stream.video.sfu.event.InboundStateNotification */ export interface InboundStateNotification { /** * @generated from protobuf field: repeated stream.video.sfu.event.InboundVideoState inbound_video_states = 1; */ inboundVideoStates: InboundVideoState[]; } /** * @generated from protobuf message stream.video.sfu.event.InboundVideoState */ export interface InboundVideoState { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 3; */ trackType: TrackType; /** * @generated from protobuf field: bool paused = 4; */ paused: boolean; } declare class SfuEvent$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.SfuEvent */ export declare const SfuEvent: SfuEvent$Type; declare class ChangePublishOptions$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ChangePublishOptions */ export declare const ChangePublishOptions: ChangePublishOptions$Type; declare class ChangePublishOptionsComplete$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ChangePublishOptionsComplete */ export declare const ChangePublishOptionsComplete: ChangePublishOptionsComplete$Type; declare class ParticipantMigrationComplete$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ParticipantMigrationComplete */ export declare const ParticipantMigrationComplete: ParticipantMigrationComplete$Type; declare class PinsChanged$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.PinsChanged */ export declare const PinsChanged: PinsChanged$Type; declare class Error$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.Error */ export declare const Error: Error$Type; declare class ICETrickle$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ICETrickle */ export declare const ICETrickle: ICETrickle$Type; declare class ICERestart$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ICERestart */ export declare const ICERestart: ICERestart$Type; declare class SfuRequest$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.SfuRequest */ export declare const SfuRequest: SfuRequest$Type; declare class LeaveCallRequest$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.LeaveCallRequest */ export declare const LeaveCallRequest: LeaveCallRequest$Type; declare class HealthCheckRequest$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.HealthCheckRequest */ export declare const HealthCheckRequest: HealthCheckRequest$Type; declare class HealthCheckResponse$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.HealthCheckResponse */ export declare const HealthCheckResponse: HealthCheckResponse$Type; declare class TrackPublished$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.TrackPublished */ export declare const TrackPublished: TrackPublished$Type; declare class TrackUnpublished$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.TrackUnpublished */ export declare const TrackUnpublished: TrackUnpublished$Type; declare class JoinRequest$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.JoinRequest */ export declare const JoinRequest: JoinRequest$Type; declare class ReconnectDetails$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ReconnectDetails */ export declare const ReconnectDetails: ReconnectDetails$Type; declare class Migration$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.Migration */ export declare const Migration: Migration$Type; declare class JoinResponse$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.JoinResponse */ export declare const JoinResponse: JoinResponse$Type; declare class ParticipantJoined$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ParticipantJoined */ export declare const ParticipantJoined: ParticipantJoined$Type; declare class ParticipantLeft$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ParticipantLeft */ export declare const ParticipantLeft: ParticipantLeft$Type; declare class ParticipantUpdated$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ParticipantUpdated */ export declare const ParticipantUpdated: ParticipantUpdated$Type; declare class SubscriberOffer$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.SubscriberOffer */ export declare const SubscriberOffer: SubscriberOffer$Type; declare class PublisherAnswer$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.PublisherAnswer */ export declare const PublisherAnswer: PublisherAnswer$Type; declare class ConnectionQualityChanged$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ConnectionQualityChanged */ export declare const ConnectionQualityChanged: ConnectionQualityChanged$Type; declare class ConnectionQualityInfo$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ConnectionQualityInfo */ export declare const ConnectionQualityInfo: ConnectionQualityInfo$Type; declare class DominantSpeakerChanged$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.DominantSpeakerChanged */ export declare const DominantSpeakerChanged: DominantSpeakerChanged$Type; declare class AudioLevel$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.AudioLevel */ export declare const AudioLevel: AudioLevel$Type; declare class AudioLevelChanged$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.AudioLevelChanged */ export declare const AudioLevelChanged: AudioLevelChanged$Type; declare class AudioSender$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.AudioSender */ export declare const AudioSender: AudioSender$Type; declare class VideoLayerSetting$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.VideoLayerSetting */ export declare const VideoLayerSetting: VideoLayerSetting$Type; declare class VideoSender$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.VideoSender */ export declare const VideoSender: VideoSender$Type; declare class ChangePublishQuality$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.ChangePublishQuality */ export declare const ChangePublishQuality: ChangePublishQuality$Type; declare class CallGrantsUpdated$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.CallGrantsUpdated */ export declare const CallGrantsUpdated: CallGrantsUpdated$Type; declare class GoAway$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.GoAway */ export declare const GoAway: GoAway$Type; declare class CallEnded$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.CallEnded */ export declare const CallEnded: CallEnded$Type; declare class InboundStateNotification$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.InboundStateNotification */ export declare const InboundStateNotification: InboundStateNotification$Type; declare class InboundVideoState$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.event.InboundVideoState */ export declare const InboundVideoState: InboundVideoState$Type; export {};