import { MessageType } from '@protobuf-ts/runtime'; import { Struct } from '../../../google/protobuf/struct'; import { Timestamp } from '../../../google/protobuf/timestamp'; /** * CallState is the current state of the call * as seen by an SFU. * * @generated from protobuf message stream.video.sfu.models.CallState */ export interface CallState { /** * participants is the list of participants in the call. * In large calls, the list could be truncated in which * case, the list of participants contains fewer participants * than the counts returned in participant_count. Anonymous * participants are **NOT** included in the list. * * @generated from protobuf field: repeated stream.video.sfu.models.Participant participants = 1; */ participants: Participant[]; /** * started_at is the time the call session actually started. * * @generated from protobuf field: google.protobuf.Timestamp started_at = 2; */ startedAt?: Timestamp; /** * participant_count contains the summary of the counts. * * @generated from protobuf field: stream.video.sfu.models.ParticipantCount participant_count = 3; */ participantCount?: ParticipantCount; /** * 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 = 4; */ pins: Pin[]; } /** * @generated from protobuf message stream.video.sfu.models.ParticipantCount */ export interface ParticipantCount { /** * Total number of participants in the call including * the anonymous participants. * * @generated from protobuf field: uint32 total = 1; */ total: number; /** * Total number of anonymous participants in the call. * * @generated from protobuf field: uint32 anonymous = 2; */ anonymous: number; } /** * @generated from protobuf message stream.video.sfu.models.Pin */ export interface Pin { /** * the user to pin * * @generated from protobuf field: string user_id = 1; */ userId: string; /** * the user sesion_id to pin, if not provided, applies to all sessions * * @generated from protobuf field: string session_id = 2; */ sessionId: string; } /** * those who are online in the call * * @generated from protobuf message stream.video.sfu.models.Participant */ export interface Participant { /** * @generated from protobuf field: string user_id = 1; */ userId: string; /** * @generated from protobuf field: string session_id = 2; */ sessionId: string; /** * map of track id to track type * * @generated from protobuf field: repeated stream.video.sfu.models.TrackType published_tracks = 3; */ publishedTracks: TrackType[]; /** * @generated from protobuf field: google.protobuf.Timestamp joined_at = 4; */ joinedAt?: Timestamp; /** * @generated from protobuf field: string track_lookup_prefix = 5; */ trackLookupPrefix: string; /** * @generated from protobuf field: stream.video.sfu.models.ConnectionQuality connection_quality = 6; */ connectionQuality: ConnectionQuality; /** * @generated from protobuf field: bool is_speaking = 7; */ isSpeaking: boolean; /** * @generated from protobuf field: bool is_dominant_speaker = 8; */ isDominantSpeaker: boolean; /** * @generated from protobuf field: float audio_level = 9; */ audioLevel: number; /** * @generated from protobuf field: string name = 10; */ name: string; /** * @generated from protobuf field: string image = 11; */ image: string; /** * @generated from protobuf field: google.protobuf.Struct custom = 12; */ custom?: Struct; /** * @generated from protobuf field: repeated string roles = 13; */ roles: string[]; /** * @generated from protobuf field: stream.video.sfu.models.ParticipantSource source = 14; */ source: ParticipantSource; } /** * @generated from protobuf message stream.video.sfu.models.StreamQuality */ export interface StreamQuality { /** * @generated from protobuf field: stream.video.sfu.models.VideoQuality video_quality = 1; */ videoQuality: VideoQuality; /** * @generated from protobuf field: string user_id = 2; */ userId: string; } /** * @generated from protobuf message stream.video.sfu.models.VideoDimension */ export interface VideoDimension { /** * @generated from protobuf field: uint32 width = 1; */ width: number; /** * @generated from protobuf field: uint32 height = 2; */ height: number; } /** * @generated from protobuf message stream.video.sfu.models.VideoLayer */ export interface VideoLayer { /** * for tracks with a single layer, this should be HIGH * * @generated from protobuf field: string rid = 1; */ rid: string; /** * @generated from protobuf field: stream.video.sfu.models.VideoDimension video_dimension = 2; */ videoDimension?: VideoDimension; /** * target bitrate, server will measure actual * * @generated from protobuf field: uint32 bitrate = 4; */ bitrate: number; /** * @generated from protobuf field: uint32 fps = 5; */ fps: number; /** * @generated from protobuf field: stream.video.sfu.models.VideoQuality quality = 6; */ quality: VideoQuality; } /** * SubscribeOption represents the configuration options for subscribing to a track. * * @generated from protobuf message stream.video.sfu.models.SubscribeOption */ export interface SubscribeOption { /** * The type of the track being subscribed (e.g., video, screenshare). * * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 1; */ trackType: TrackType; /** * The codecs supported by the subscriber for decoding tracks. * * @generated from protobuf field: repeated stream.video.sfu.models.Codec codecs = 2; */ codecs: Codec[]; } /** * PublishOption represents the configuration options for publishing a track. * * @generated from protobuf message stream.video.sfu.models.PublishOption */ export interface PublishOption { /** * The type of the track being published (e.g., video, screenshare). * * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 1; */ trackType: TrackType; /** * The codec to be used for encoding the track (e.g., VP8, VP9, H264). * * @generated from protobuf field: stream.video.sfu.models.Codec codec = 2; */ codec?: Codec; /** * The target bitrate for the published track, in bits per second. * * @generated from protobuf field: int32 bitrate = 3; */ bitrate: number; /** * The target frames per second (FPS) for video encoding. * * @generated from protobuf field: int32 fps = 4; */ fps: number; /** * The maximum number of spatial layers to send. * - For SVC (e.g., VP9), spatial layers downscale by a factor of 2: * - 1 layer: full resolution * - 2 layers: full resolution + half resolution * - 3 layers: full resolution + half resolution + quarter resolution * - For non-SVC codecs (e.g., VP8/H264), this determines the number of * encoded resolutions (e.g., quarter, half, full) sent for simulcast. * * @generated from protobuf field: int32 max_spatial_layers = 5; */ maxSpatialLayers: number; /** * The maximum number of temporal layers for scalable video coding (SVC). * Temporal layers allow varying frame rates for different bandwidths. * * @generated from protobuf field: int32 max_temporal_layers = 6; */ maxTemporalLayers: number; /** * The dimensions of the video (e.g., width and height in pixels). * Spatial layers are based on this base resolution. For example, if the base * resolution is 1280x720: * - Full resolution (1 layer) = 1280x720 * - Half resolution (2 layers) = 640x360 * - Quarter resolution (3 layers) = 320x180 * * @generated from protobuf field: stream.video.sfu.models.VideoDimension video_dimension = 7; */ videoDimension?: VideoDimension; /** * The unique identifier for the publish request. * - This `id` is assigned exclusively by the SFU. Any `id` set by the client * in the `PublishOption` will be ignored and overwritten by the SFU. * - The primary purpose of this `id` is to uniquely identify each publish * request, even in scenarios where multiple publish requests for the same * `track_type` and `codec` are active simultaneously. * For example: * - A user may publish two tracks of the same type (e.g., video) and codec * (e.g., VP9) concurrently. * - This uniqueness ensures that individual requests can be managed * independently. For instance, an `id` is critical when stopping a specific * publish request without affecting others. * * @generated from protobuf field: int32 id = 8; */ id: number; /** * If true, instructs the publisher to send only the highest available simulcast layer, * disabling all lower layers. This applies to simulcast encodings. * For SVC codecs, prefer using the L1T3 (single spatial, 3 temporal layers) mode instead. * * @generated from protobuf field: bool use_single_layer = 9; */ useSingleLayer: boolean; /** * Audio bitrate profiles for different audio quality profiles. * * @generated from protobuf field: repeated stream.video.sfu.models.AudioBitrate audio_bitrate_profiles = 10; */ audioBitrateProfiles: AudioBitrate[]; } /** * @generated from protobuf message stream.video.sfu.models.Codec */ export interface Codec { /** * @generated from protobuf field: uint32 payload_type = 16; */ payloadType: number; /** * @generated from protobuf field: string name = 10; */ name: string; /** * @generated from protobuf field: uint32 clock_rate = 14; */ clockRate: number; /** * @generated from protobuf field: string encoding_parameters = 15; */ encodingParameters: string; /** * @generated from protobuf field: string fmtp = 12; */ fmtp: string; } /** * @generated from protobuf message stream.video.sfu.models.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 field: string session_id = 3; */ sessionId: string; } /** * @generated from protobuf message stream.video.sfu.models.AudioBitrate */ export interface AudioBitrate { /** * @generated from protobuf field: stream.video.sfu.models.AudioBitrateProfile profile = 1; */ profile: AudioBitrateProfile; /** * @generated from protobuf field: int32 bitrate = 2; */ bitrate: number; } /** * @generated from protobuf message stream.video.sfu.models.TrackInfo */ export interface TrackInfo { /** * @generated from protobuf field: string track_id = 1; */ trackId: string; /** * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 2; */ trackType: TrackType; /** * @generated from protobuf field: repeated stream.video.sfu.models.VideoLayer layers = 5; */ layers: VideoLayer[]; /** * @generated from protobuf field: string mid = 6; */ mid: string; /** * for audio tracks * * @generated from protobuf field: bool dtx = 7; */ dtx: boolean; /** * @generated from protobuf field: bool stereo = 8; */ stereo: boolean; /** * @generated from protobuf field: bool red = 9; */ red: boolean; /** * @generated from protobuf field: bool muted = 10; */ muted: boolean; /** * @generated from protobuf field: stream.video.sfu.models.Codec codec = 11; */ codec?: Codec; /** * @generated from protobuf field: int32 publish_option_id = 12; */ publishOptionId: number; } /** * @generated from protobuf message stream.video.sfu.models.Error */ export interface Error { /** * @generated from protobuf field: stream.video.sfu.models.ErrorCode code = 1; */ code: ErrorCode; /** * @generated from protobuf field: string message = 2; */ message: string; /** * @generated from protobuf field: bool should_retry = 3; */ shouldRetry: boolean; } /** * @generated from protobuf message stream.video.sfu.models.ClientDetails */ export interface ClientDetails { /** * @generated from protobuf field: stream.video.sfu.models.Sdk sdk = 1; */ sdk?: Sdk; /** * @generated from protobuf field: stream.video.sfu.models.OS os = 2; */ os?: OS; /** * @generated from protobuf field: stream.video.sfu.models.Browser browser = 3; */ browser?: Browser; /** * @generated from protobuf field: stream.video.sfu.models.Device device = 4; */ device?: Device; } /** * @generated from protobuf message stream.video.sfu.models.Sdk */ export interface Sdk { /** * @generated from protobuf field: stream.video.sfu.models.SdkType type = 1; */ type: SdkType; /** * @generated from protobuf field: string major = 2; */ major: string; /** * @generated from protobuf field: string minor = 3; */ minor: string; /** * @generated from protobuf field: string patch = 4; */ patch: string; } /** * @generated from protobuf message stream.video.sfu.models.OS */ export interface OS { /** * @generated from protobuf field: string name = 1; */ name: string; /** * @generated from protobuf field: string version = 2; */ version: string; /** * @generated from protobuf field: string architecture = 3; */ architecture: string; } /** * @generated from protobuf message stream.video.sfu.models.Browser */ export interface Browser { /** * @generated from protobuf field: string name = 1; */ name: string; /** * @generated from protobuf field: string version = 2; */ version: string; } /** * @generated from protobuf message stream.video.sfu.models.RTMPIngress */ export interface RTMPIngress { /** * Video dimensions and frame rate * * @generated from protobuf field: uint32 width = 1; */ width: number; /** * @generated from protobuf field: uint32 height = 2; */ height: number; /** * @generated from protobuf field: double frame_rate = 3; */ frameRate: number; /** * Client info * * @generated from protobuf field: string software = 4; */ software: string; /** * @generated from protobuf field: string version = 5; */ version: string; /** * @generated from protobuf field: string encoder = 6; */ encoder: string; /** * Connection info * * @generated from protobuf field: string remote_addr = 7; */ remoteAddr: string; } /** * @generated from protobuf message stream.video.sfu.models.Device */ export interface Device { /** * @generated from protobuf field: string name = 1; */ name: string; /** * @generated from protobuf field: string version = 2; */ version: string; } /** * @generated from protobuf message stream.video.sfu.models.Call */ export interface Call { /** * the call type * * @generated from protobuf field: string type = 1; */ type: string; /** * the call id * * @generated from protobuf field: string id = 2; */ id: string; /** * the id of the user that created this call * * @generated from protobuf field: string created_by_user_id = 3; */ createdByUserId: string; /** * the id of the current host for this call * * @generated from protobuf field: string host_user_id = 4; */ hostUserId: string; /** * @generated from protobuf field: google.protobuf.Struct custom = 5; */ custom?: Struct; /** * @generated from protobuf field: google.protobuf.Timestamp created_at = 6; */ createdAt?: Timestamp; /** * @generated from protobuf field: google.protobuf.Timestamp updated_at = 7; */ updatedAt?: Timestamp; } /** * CallGrants represents the set of permissions given * to the user for the current call. * * @generated from protobuf message stream.video.sfu.models.CallGrants */ export interface CallGrants { /** * @generated from protobuf field: bool can_publish_audio = 1; */ canPublishAudio: boolean; /** * @generated from protobuf field: bool can_publish_video = 2; */ canPublishVideo: boolean; /** * @generated from protobuf field: bool can_screenshare = 3; */ canScreenshare: boolean; } /** * @generated from protobuf message stream.video.sfu.models.InputDevices */ export interface InputDevices { /** * @generated from protobuf field: repeated string available_devices = 1; */ availableDevices: string[]; /** * @generated from protobuf field: string current_device = 2; */ currentDevice: string; /** * @generated from protobuf field: bool is_permitted = 3; */ isPermitted: boolean; } /** * @generated from protobuf message stream.video.sfu.models.AndroidState */ export interface AndroidState { /** * @generated from protobuf field: stream.video.sfu.models.AndroidThermalState thermal_state = 1; */ thermalState: AndroidThermalState; /** * @generated from protobuf field: bool is_power_saver_mode = 2; */ isPowerSaverMode: boolean; } /** * @generated from protobuf message stream.video.sfu.models.AppleState */ export interface AppleState { /** * @generated from protobuf field: stream.video.sfu.models.AppleThermalState thermal_state = 1; */ thermalState: AppleThermalState; /** * https://developer.apple.com/documentation/foundation/processinfo/1617047-islowpowermodeenabled * * @generated from protobuf field: bool is_low_power_mode_enabled = 2; */ isLowPowerModeEnabled: boolean; } /** * PerformanceStats represents the encoding/decoding statistics for a track. * * @generated from protobuf message stream.video.sfu.models.PerformanceStats */ export interface PerformanceStats { /** * the type of the track (e.g., video, audio, screen share) * * @generated from protobuf field: stream.video.sfu.models.TrackType track_type = 1; */ trackType: TrackType; /** * the codec used for the track * * @generated from protobuf field: stream.video.sfu.models.Codec codec = 2; */ codec?: Codec; /** * the average encode/decode time in ms * * @generated from protobuf field: float avg_frame_time_ms = 3; */ avgFrameTimeMs: number; /** * the average fps for the track * * @generated from protobuf field: float avg_fps = 4; */ avgFps: number; /** * the track dimensions * * @generated from protobuf field: stream.video.sfu.models.VideoDimension video_dimension = 5; */ videoDimension?: VideoDimension; /** * the target bitrate for the track, only for published tracks * * @generated from protobuf field: int32 target_bitrate = 6; */ targetBitrate: number; } /** * @generated from protobuf enum stream.video.sfu.models.PeerType */ export declare enum PeerType { /** * todo fix me (marcelo) * * @generated from protobuf enum value: PEER_TYPE_PUBLISHER_UNSPECIFIED = 0; */ PUBLISHER_UNSPECIFIED = 0, /** * @generated from protobuf enum value: PEER_TYPE_SUBSCRIBER = 1; */ SUBSCRIBER = 1 } /** * @generated from protobuf enum stream.video.sfu.models.ConnectionQuality */ export declare enum ConnectionQuality { /** * @generated from protobuf enum value: CONNECTION_QUALITY_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: CONNECTION_QUALITY_POOR = 1; */ POOR = 1, /** * @generated from protobuf enum value: CONNECTION_QUALITY_GOOD = 2; */ GOOD = 2, /** * @generated from protobuf enum value: CONNECTION_QUALITY_EXCELLENT = 3; */ EXCELLENT = 3 } /** * @generated from protobuf enum stream.video.sfu.models.VideoQuality */ export declare enum VideoQuality { /** * @generated from protobuf enum value: VIDEO_QUALITY_LOW_UNSPECIFIED = 0; */ LOW_UNSPECIFIED = 0, /** * @generated from protobuf enum value: VIDEO_QUALITY_MID = 1; */ MID = 1, /** * @generated from protobuf enum value: VIDEO_QUALITY_HIGH = 2; */ HIGH = 2, /** * @generated from protobuf enum value: VIDEO_QUALITY_OFF = 3; */ OFF = 3 } /** * @generated from protobuf enum stream.video.sfu.models.TrackType */ export declare enum TrackType { /** * @generated from protobuf enum value: TRACK_TYPE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: TRACK_TYPE_AUDIO = 1; */ AUDIO = 1, /** * @generated from protobuf enum value: TRACK_TYPE_VIDEO = 2; */ VIDEO = 2, /** * @generated from protobuf enum value: TRACK_TYPE_SCREEN_SHARE = 3; */ SCREEN_SHARE = 3, /** * @generated from protobuf enum value: TRACK_TYPE_SCREEN_SHARE_AUDIO = 4; */ SCREEN_SHARE_AUDIO = 4 } /** * must be aligned with kit * * @generated from protobuf enum stream.video.sfu.models.ParticipantSource */ export declare enum ParticipantSource { /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_WEBRTC_UNSPECIFIED = 0; */ WEBRTC_UNSPECIFIED = 0, /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_RTMP = 1; */ RTMP = 1, /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_WHIP = 2; */ WHIP = 2, /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_SIP = 3; */ SIP = 3, /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_RTSP = 4; */ RTSP = 4, /** * @generated from protobuf enum value: PARTICIPANT_SOURCE_SRT = 5; */ SRT = 5 } /** * @generated from protobuf enum stream.video.sfu.models.AudioBitrateProfile */ export declare enum AudioBitrateProfile { /** * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_VOICE_STANDARD_UNSPECIFIED = 0; */ VOICE_STANDARD_UNSPECIFIED = 0, /** * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_VOICE_HIGH_QUALITY = 1; */ VOICE_HIGH_QUALITY = 1, /** * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_MUSIC_HIGH_QUALITY = 2; */ MUSIC_HIGH_QUALITY = 2 } /** * @generated from protobuf enum stream.video.sfu.models.ErrorCode */ export declare enum ErrorCode { /** * @generated from protobuf enum value: ERROR_CODE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: ERROR_CODE_PUBLISH_TRACK_NOT_FOUND = 100; */ PUBLISH_TRACK_NOT_FOUND = 100, /** * @generated from protobuf enum value: ERROR_CODE_PUBLISH_TRACKS_MISMATCH = 101; */ PUBLISH_TRACKS_MISMATCH = 101, /** * @generated from protobuf enum value: ERROR_CODE_PUBLISH_TRACK_OUT_OF_ORDER = 102; */ PUBLISH_TRACK_OUT_OF_ORDER = 102, /** * @generated from protobuf enum value: ERROR_CODE_PUBLISH_TRACK_VIDEO_LAYER_NOT_FOUND = 103; */ PUBLISH_TRACK_VIDEO_LAYER_NOT_FOUND = 103, /** * @generated from protobuf enum value: ERROR_CODE_LIVE_ENDED = 104; */ LIVE_ENDED = 104, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_NOT_FOUND = 200; */ PARTICIPANT_NOT_FOUND = 200, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_MIGRATING_OUT = 201; */ PARTICIPANT_MIGRATING_OUT = 201, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_MIGRATION_FAILED = 202; */ PARTICIPANT_MIGRATION_FAILED = 202, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_MIGRATING = 203; */ PARTICIPANT_MIGRATING = 203, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_RECONNECT_FAILED = 204; */ PARTICIPANT_RECONNECT_FAILED = 204, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_MEDIA_TRANSPORT_FAILURE = 205; */ PARTICIPANT_MEDIA_TRANSPORT_FAILURE = 205, /** * @generated from protobuf enum value: ERROR_CODE_PARTICIPANT_SIGNAL_LOST = 206; */ PARTICIPANT_SIGNAL_LOST = 206, /** * @generated from protobuf enum value: ERROR_CODE_CALL_NOT_FOUND = 300; */ CALL_NOT_FOUND = 300, /** * @generated from protobuf enum value: ERROR_CODE_CALL_PARTICIPANT_LIMIT_REACHED = 301; */ CALL_PARTICIPANT_LIMIT_REACHED = 301, /** * @generated from protobuf enum value: ERROR_CODE_REQUEST_VALIDATION_FAILED = 400; */ REQUEST_VALIDATION_FAILED = 400, /** * @generated from protobuf enum value: ERROR_CODE_UNAUTHENTICATED = 401; */ UNAUTHENTICATED = 401, /** * @generated from protobuf enum value: ERROR_CODE_PERMISSION_DENIED = 403; */ PERMISSION_DENIED = 403, /** * @generated from protobuf enum value: ERROR_CODE_TOO_MANY_REQUESTS = 429; */ TOO_MANY_REQUESTS = 429, /** * @generated from protobuf enum value: ERROR_CODE_INTERNAL_SERVER_ERROR = 500; */ INTERNAL_SERVER_ERROR = 500, /** * @generated from protobuf enum value: ERROR_CODE_SFU_SHUTTING_DOWN = 600; */ SFU_SHUTTING_DOWN = 600, /** * @generated from protobuf enum value: ERROR_CODE_SFU_FULL = 700; */ SFU_FULL = 700 } /** * @generated from protobuf enum stream.video.sfu.models.SdkType */ export declare enum SdkType { /** * @generated from protobuf enum value: SDK_TYPE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: SDK_TYPE_REACT = 1; */ REACT = 1, /** * @generated from protobuf enum value: SDK_TYPE_ANGULAR = 2; */ ANGULAR = 2, /** * @generated from protobuf enum value: SDK_TYPE_ANDROID = 3; */ ANDROID = 3, /** * @generated from protobuf enum value: SDK_TYPE_IOS = 4; */ IOS = 4, /** * @generated from protobuf enum value: SDK_TYPE_FLUTTER = 5; */ FLUTTER = 5, /** * @generated from protobuf enum value: SDK_TYPE_REACT_NATIVE = 6; */ REACT_NATIVE = 6, /** * @generated from protobuf enum value: SDK_TYPE_UNITY = 7; */ UNITY = 7, /** * @generated from protobuf enum value: SDK_TYPE_GO = 8; */ GO = 8, /** * @generated from protobuf enum value: SDK_TYPE_PLAIN_JAVASCRIPT = 9; */ PLAIN_JAVASCRIPT = 9 } /** * @generated from protobuf enum stream.video.sfu.models.TrackUnpublishReason */ export declare enum TrackUnpublishReason { /** * Default value which is used when the specific reason * for muting the track is not known. * * @generated from protobuf enum value: TRACK_UNPUBLISH_REASON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * Represents user muting their tracks. * * @generated from protobuf enum value: TRACK_UNPUBLISH_REASON_USER_MUTED = 1; */ USER_MUTED = 1, /** * Represents muting the track because the permission to * publish the track has been revoked. * * @generated from protobuf enum value: TRACK_UNPUBLISH_REASON_PERMISSION_REVOKED = 2; */ PERMISSION_REVOKED = 2, /** * Represents muting the track due to moderation actions. * This is different from permission revoked because the * participant can unmute themselves here whereas in case * of "permission revoke" it is not possible until the * call permissions are updated. * * @generated from protobuf enum value: TRACK_UNPUBLISH_REASON_MODERATION = 3; */ MODERATION = 3 } /** * GoAwayReason represents the reason for the SFU to * disconnect the client. * * @generated from protobuf enum stream.video.sfu.models.GoAwayReason */ export declare enum GoAwayReason { /** * @generated from protobuf enum value: GO_AWAY_REASON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: GO_AWAY_REASON_SHUTTING_DOWN = 1; */ SHUTTING_DOWN = 1, /** * @generated from protobuf enum value: GO_AWAY_REASON_REBALANCE = 2; */ REBALANCE = 2 } /** * CallEndedReason represents the reason for the call to end. * * @generated from protobuf enum stream.video.sfu.models.CallEndedReason */ export declare enum CallEndedReason { /** * @generated from protobuf enum value: CALL_ENDED_REASON_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: CALL_ENDED_REASON_ENDED = 1; */ ENDED = 1, /** * @generated from protobuf enum value: CALL_ENDED_REASON_LIVE_ENDED = 2; */ LIVE_ENDED = 2, /** * @generated from protobuf enum value: CALL_ENDED_REASON_KICKED = 3; */ KICKED = 3, /** * @generated from protobuf enum value: CALL_ENDED_REASON_SESSION_ENDED = 4; */ SESSION_ENDED = 4 } /** * WebsocketReconnectStrategy defines the ws strategies available for handling reconnections. * * @generated from protobuf enum stream.video.sfu.models.WebsocketReconnectStrategy */ export declare enum WebsocketReconnectStrategy { /** * @generated from protobuf enum value: WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * Sent after reaching the maximum reconnection attempts, or any other unrecoverable error leading to permanent disconnect. * * @generated from protobuf enum value: WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT = 1; */ DISCONNECT = 1, /** * SDK should maintaining existing publisher/subscriber pc instances * and establish a new WebSocket connection. * * @generated from protobuf enum value: WEBSOCKET_RECONNECT_STRATEGY_FAST = 2; */ FAST = 2, /** * SDK should obtain new credentials from the coordinator, drops existing pc instances, set a new session_id and initializes * a completely new WebSocket connection, ensuring a comprehensive reset. * * @generated from protobuf enum value: WEBSOCKET_RECONNECT_STRATEGY_REJOIN = 3; */ REJOIN = 3, /** * SDK should migrate to a new SFU instance * * @generated from protobuf enum value: WEBSOCKET_RECONNECT_STRATEGY_MIGRATE = 4; */ MIGRATE = 4 } /** * AndroidThermalState is reported by the Android API. The full list of values is documented here * https://developer.android.com/reference/android/os/PowerManager.html#getCurrentThermalStatus() * * @generated from protobuf enum stream.video.sfu.models.AndroidThermalState */ export declare enum AndroidThermalState { /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_NONE = 1; */ NONE = 1, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_LIGHT = 2; */ LIGHT = 2, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_MODERATE = 3; */ MODERATE = 3, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_SEVERE = 4; */ SEVERE = 4, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_CRITICAL = 5; */ CRITICAL = 5, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_EMERGENCY = 6; */ EMERGENCY = 6, /** * @generated from protobuf enum value: ANDROID_THERMAL_STATE_SHUTDOWN = 7; */ SHUTDOWN = 7 } /** * AppleThermalState is the thermal state as reported by Apple devices when available or applicable to the platform. * The full list of states (enum) is available here: https://developer.apple.com/documentation/foundation/processinfo/thermalstate * * @generated from protobuf enum stream.video.sfu.models.AppleThermalState */ export declare enum AppleThermalState { /** * @generated from protobuf enum value: APPLE_THERMAL_STATE_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * @generated from protobuf enum value: APPLE_THERMAL_STATE_NOMINAL = 1; */ NOMINAL = 1, /** * @generated from protobuf enum value: APPLE_THERMAL_STATE_FAIR = 2; */ FAIR = 2, /** * @generated from protobuf enum value: APPLE_THERMAL_STATE_SERIOUS = 3; */ SERIOUS = 3, /** * @generated from protobuf enum value: APPLE_THERMAL_STATE_CRITICAL = 4; */ CRITICAL = 4 } /** * ClientCapability defines a feature that client supports * * @generated from protobuf enum stream.video.sfu.models.ClientCapability */ export declare enum ClientCapability { /** * @generated from protobuf enum value: CLIENT_CAPABILITY_UNSPECIFIED = 0; */ UNSPECIFIED = 0, /** * Enables SFU pausing inbound video * * @generated from protobuf enum value: CLIENT_CAPABILITY_SUBSCRIBER_VIDEO_PAUSE = 1; */ SUBSCRIBER_VIDEO_PAUSE = 1 } declare class CallState$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.CallState */ export declare const CallState: CallState$Type; declare class ParticipantCount$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.ParticipantCount */ export declare const ParticipantCount: ParticipantCount$Type; declare class Pin$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Pin */ export declare const Pin: Pin$Type; declare class Participant$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Participant */ export declare const Participant: Participant$Type; declare class StreamQuality$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.StreamQuality */ export declare const StreamQuality: StreamQuality$Type; declare class VideoDimension$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.VideoDimension */ export declare const VideoDimension: VideoDimension$Type; declare class VideoLayer$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.VideoLayer */ export declare const VideoLayer: VideoLayer$Type; declare class SubscribeOption$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.SubscribeOption */ export declare const SubscribeOption: SubscribeOption$Type; declare class PublishOption$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.PublishOption */ export declare const PublishOption: PublishOption$Type; declare class Codec$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Codec */ export declare const Codec: Codec$Type; declare class ICETrickle$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.ICETrickle */ export declare const ICETrickle: ICETrickle$Type; declare class AudioBitrate$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.AudioBitrate */ export declare const AudioBitrate: AudioBitrate$Type; declare class TrackInfo$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.TrackInfo */ export declare const TrackInfo: TrackInfo$Type; declare class Error$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Error */ export declare const Error: Error$Type; declare class ClientDetails$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.ClientDetails */ export declare const ClientDetails: ClientDetails$Type; declare class Sdk$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Sdk */ export declare const Sdk: Sdk$Type; declare class OS$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.OS */ export declare const OS: OS$Type; declare class Browser$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Browser */ export declare const Browser: Browser$Type; declare class RTMPIngress$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.RTMPIngress */ export declare const RTMPIngress: RTMPIngress$Type; declare class Device$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Device */ export declare const Device: Device$Type; declare class Call$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.Call */ export declare const Call: Call$Type; declare class CallGrants$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.CallGrants */ export declare const CallGrants: CallGrants$Type; declare class InputDevices$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.InputDevices */ export declare const InputDevices: InputDevices$Type; declare class AndroidState$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.AndroidState */ export declare const AndroidState: AndroidState$Type; declare class AppleState$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.AppleState */ export declare const AppleState: AppleState$Type; declare class PerformanceStats$Type extends MessageType { constructor(); } /** * @generated MessageType for protobuf message stream.video.sfu.models.PerformanceStats */ export declare const PerformanceStats: PerformanceStats$Type; export {};