@stream-io/video-client 1.32.0 → 1.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/index.browser.es.js +344 -91
  3. package/dist/index.browser.es.js.map +1 -1
  4. package/dist/index.cjs.js +345 -92
  5. package/dist/index.cjs.js.map +1 -1
  6. package/dist/index.es.js +344 -91
  7. package/dist/index.es.js.map +1 -1
  8. package/dist/src/Call.d.ts +3 -2
  9. package/dist/src/devices/AudioDeviceManager.d.ts +25 -0
  10. package/dist/src/devices/AudioDeviceManagerState.d.ts +24 -0
  11. package/dist/src/devices/CameraManager.d.ts +2 -2
  12. package/dist/src/devices/CameraManagerState.d.ts +3 -4
  13. package/dist/src/devices/{InputMediaDeviceManager.d.ts → DeviceManager.d.ts} +6 -6
  14. package/dist/src/devices/{InputMediaDeviceManagerState.d.ts → DeviceManagerState.d.ts} +4 -4
  15. package/dist/src/devices/MicrophoneManager.d.ts +5 -3
  16. package/dist/src/devices/MicrophoneManagerState.d.ts +6 -10
  17. package/dist/src/devices/ScreenShareManager.d.ts +4 -2
  18. package/dist/src/devices/ScreenShareState.d.ts +6 -2
  19. package/dist/src/devices/SpeakerState.d.ts +4 -4
  20. package/dist/src/devices/index.d.ts +2 -2
  21. package/dist/src/gen/coordinator/index.d.ts +169 -2
  22. package/dist/src/gen/video/sfu/models/models.d.ts +43 -0
  23. package/dist/src/rtc/BasePeerConnection.d.ts +2 -12
  24. package/dist/src/rtc/Publisher.d.ts +9 -6
  25. package/dist/src/rtc/Subscriber.d.ts +2 -1
  26. package/dist/src/rtc/TransceiverCache.d.ts +10 -11
  27. package/dist/src/rtc/index.d.ts +1 -1
  28. package/dist/src/rtc/{videoLayers.d.ts → layers.d.ts} +7 -1
  29. package/dist/src/rtc/types.d.ts +31 -0
  30. package/dist/src/sorting/participants.d.ts +5 -2
  31. package/package.json +3 -2
  32. package/src/Call.ts +13 -6
  33. package/src/__tests__/Call.publishing.test.ts +14 -3
  34. package/src/__tests__/StreamVideoClient.api.test.ts +1 -1
  35. package/src/devices/AudioDeviceManager.ts +61 -0
  36. package/src/devices/AudioDeviceManagerState.ts +44 -0
  37. package/src/devices/CameraManager.ts +4 -4
  38. package/src/devices/CameraManagerState.ts +9 -8
  39. package/src/devices/{InputMediaDeviceManager.ts → DeviceManager.ts} +11 -8
  40. package/src/devices/{InputMediaDeviceManagerState.ts → DeviceManagerState.ts} +7 -4
  41. package/src/devices/MicrophoneManager.ts +26 -6
  42. package/src/devices/MicrophoneManagerState.ts +18 -19
  43. package/src/devices/ScreenShareManager.ts +23 -4
  44. package/src/devices/ScreenShareState.ts +11 -3
  45. package/src/devices/SpeakerState.ts +6 -14
  46. package/src/devices/__tests__/CameraManager.test.ts +1 -0
  47. package/src/devices/__tests__/{InputMediaDeviceManager.test.ts → DeviceManager.test.ts} +4 -4
  48. package/src/devices/__tests__/{InputMediaDeviceManagerFilters.test.ts → DeviceManagerFilters.test.ts} +4 -4
  49. package/src/devices/__tests__/{InputMediaDeviceManagerState.test.ts → DeviceManagerState.test.ts} +2 -2
  50. package/src/devices/__tests__/MicrophoneManager.test.ts +41 -1
  51. package/src/devices/__tests__/NoiseCancellationStub.ts +3 -1
  52. package/src/devices/__tests__/ScreenShareManager.test.ts +5 -1
  53. package/src/devices/index.ts +2 -2
  54. package/src/events/__tests__/internal.test.ts +25 -11
  55. package/src/gen/coordinator/index.ts +169 -2
  56. package/src/gen/video/sfu/models/models.ts +65 -0
  57. package/src/rtc/BasePeerConnection.ts +1 -16
  58. package/src/rtc/Publisher.ts +74 -31
  59. package/src/rtc/Subscriber.ts +2 -4
  60. package/src/rtc/TransceiverCache.ts +23 -27
  61. package/src/rtc/__tests__/Publisher.test.ts +61 -29
  62. package/src/rtc/__tests__/{videoLayers.test.ts → layers.test.ts} +76 -1
  63. package/src/rtc/index.ts +2 -1
  64. package/src/rtc/{videoLayers.ts → layers.ts} +28 -7
  65. package/src/rtc/types.ts +44 -0
  66. package/src/sorting/__tests__/sorting.test.ts +106 -0
  67. package/src/sorting/participants.ts +30 -14
  68. package/src/sorting/presets.ts +16 -4
  69. package/src/store/CallState.ts +36 -10
  70. package/src/store/__tests__/CallState.test.ts +20 -2
@@ -1,4 +1,4 @@
1
- import { Publisher, Subscriber } from './rtc';
1
+ import { Publisher, Subscriber, TrackPublishOptions } from './rtc';
2
2
  import { CallState } from './store';
3
3
  import type { AcceptCallResponse, BlockUserResponse, CallRingEvent, CallSettingsResponse, CollectUserFeedbackRequest, CollectUserFeedbackResponse, DeleteCallRequest, DeleteCallResponse, EndCallResponse, GetCallReportResponse, GetCallResponse, GetOrCreateCallRequest, GetOrCreateCallResponse, GoLiveRequest, GoLiveResponse, JoinCallResponse, KickUserRequest, KickUserResponse, ListRecordingsResponse, ListTranscriptionsResponse, MuteUsersResponse, PinRequest, PinResponse, QueryCallMembersRequest, QueryCallMembersResponse, RejectCallResponse, RequestPermissionRequest, RequestPermissionResponse, SendCallEventResponse, SendReactionRequest, SendReactionResponse, StartClosedCaptionsRequest, StartClosedCaptionsResponse, StartFrameRecordingRequest, StartFrameRecordingResponse, StartHLSBroadcastingResponse, StartRecordingRequest, StartRecordingResponse, StartRTMPBroadcastsRequest, StartRTMPBroadcastsResponse, StartTranscriptionRequest, StartTranscriptionResponse, StopAllRTMPBroadcastsResponse, StopClosedCaptionsRequest, StopClosedCaptionsResponse, StopFrameRecordingResponse, StopHLSBroadcastingResponse, StopLiveRequest, StopLiveResponse, StopRecordingResponse, StopRTMPBroadcastsResponse, StopTranscriptionResponse, UnblockUserResponse, UnpinRequest, UnpinResponse, UpdateCallMembersRequest, UpdateCallMembersResponse, UpdateCallRequest, UpdateCallResponse, UpdateUserPermissionsRequest, UpdateUserPermissionsResponse } from './gen/coordinator';
4
4
  import { AudioTrackType, CallConstructor, CallLeaveOptions, ClientPublishOptions, ClosedCaptionsSettings, JoinCallData, TrackMuteType, VideoTrackType } from './types';
@@ -344,8 +344,9 @@ export declare class Call {
344
344
  *
345
345
  * @param mediaStream the media stream to publish.
346
346
  * @param trackType the type of the track to announce.
347
+ * @param options the publish options.
347
348
  */
348
- publish: (mediaStream: MediaStream, trackType: TrackType) => Promise<void>;
349
+ publish: (mediaStream: MediaStream, trackType: TrackType, options?: TrackPublishOptions) => Promise<void>;
349
350
  /**
350
351
  * Stops publishing the given track type to the call, if it is currently being published.
351
352
  *
@@ -0,0 +1,25 @@
1
+ import { DeviceManager } from './DeviceManager';
2
+ import { AudioDeviceManagerState } from './AudioDeviceManagerState';
3
+ import { AudioBitrateProfile } from '../gen/video/sfu/models/models';
4
+ import { TrackPublishOptions } from '../rtc';
5
+ /**
6
+ * Base class for High Fidelity enabled Device Managers.
7
+ */
8
+ export declare abstract class AudioDeviceManager<S extends AudioDeviceManagerState<C>, C = MediaTrackConstraints> extends DeviceManager<S, C> {
9
+ /**
10
+ * Sets the audio bitrate profile and stereo mode.
11
+ */
12
+ setAudioBitrateProfile(profile: AudioBitrateProfile): Promise<void>;
13
+ /**
14
+ * Overrides the default `publishStream` method to inject the audio bitrate profile.
15
+ */
16
+ protected publishStream(stream: MediaStream, options?: TrackPublishOptions): Promise<void>;
17
+ /**
18
+ * Applies Device Manager's specific audio profile settings.
19
+ */
20
+ protected abstract doSetAudioBitrateProfile(profile: AudioBitrateProfile): void;
21
+ }
22
+ /**
23
+ * Prepares a new MediaTrackConstraints set based on the provided arguments.
24
+ */
25
+ export declare const createAudioConstraints: (profile: AudioBitrateProfile) => MediaTrackConstraints;
@@ -0,0 +1,24 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AudioBitrateProfile } from '../gen/video/sfu/models/models';
3
+ import { DeviceManagerState, TrackDisableMode } from './DeviceManagerState';
4
+ import { BrowserPermission } from './BrowserPermission';
5
+ /**
6
+ * Base state class for High Fidelity enabled device managers.
7
+ */
8
+ export declare abstract class AudioDeviceManagerState<C> extends DeviceManagerState<C> {
9
+ private readonly audioBitrateProfileSubject;
10
+ /** An Observable that emits the current audio bitrate profile. */
11
+ audioBitrateProfile$: Observable<AudioBitrateProfile>;
12
+ /**
13
+ * Constructs a new AudioDeviceManagerState instance.
14
+ */
15
+ protected constructor(disableMode: TrackDisableMode, permission: BrowserPermission | undefined, profile: AudioBitrateProfile);
16
+ /**
17
+ * Returns the current audio bitrate profile.
18
+ */
19
+ get audioBitrateProfile(): AudioBitrateProfile;
20
+ /**
21
+ * Sets the audio bitrate profile and stereo mode.
22
+ */
23
+ setAudioBitrateProfile(profile: AudioBitrateProfile): void;
24
+ }
@@ -1,9 +1,9 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Call } from '../Call';
3
3
  import { CameraDirection, CameraManagerState } from './CameraManagerState';
4
- import { InputMediaDeviceManager } from './InputMediaDeviceManager';
4
+ import { DeviceManager } from './DeviceManager';
5
5
  import { VideoSettingsResponse } from '../gen/coordinator';
6
- export declare class CameraManager extends InputMediaDeviceManager<CameraManagerState> {
6
+ export declare class CameraManager extends DeviceManager<CameraManagerState> {
7
7
  private targetResolution;
8
8
  /**
9
9
  * Constructs a new CameraManager.
@@ -1,14 +1,13 @@
1
- import { Observable } from 'rxjs';
2
- import { InputMediaDeviceManagerState } from './InputMediaDeviceManagerState';
1
+ import { DeviceManagerState } from './DeviceManagerState';
3
2
  export type CameraDirection = 'front' | 'back' | undefined;
4
- export declare class CameraManagerState extends InputMediaDeviceManagerState {
3
+ export declare class CameraManagerState extends DeviceManagerState {
5
4
  private directionSubject;
6
5
  /**
7
6
  * Observable that emits the preferred camera direction
8
7
  * front - means the camera facing the user
9
8
  * back - means the camera facing the environment
10
9
  */
11
- direction$: Observable<CameraDirection>;
10
+ direction$: import("rxjs").Observable<CameraDirection>;
12
11
  constructor();
13
12
  /**
14
13
  * The preferred camera direction
@@ -1,16 +1,17 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Call } from '../Call';
3
- import { InputMediaDeviceManagerState } from './InputMediaDeviceManagerState';
3
+ import { TrackPublishOptions } from '../rtc';
4
+ import { DeviceManagerState } from './DeviceManagerState';
4
5
  import { Logger } from '../coordinator/connection/types';
5
6
  import { TrackType } from '../gen/video/sfu/models/models';
6
7
  import { MediaStreamFilter, MediaStreamFilterRegistrationResult } from './filters';
7
- export declare abstract class InputMediaDeviceManager<T extends InputMediaDeviceManagerState<C>, C = MediaTrackConstraints> {
8
+ export declare abstract class DeviceManager<S extends DeviceManagerState<C>, C = MediaTrackConstraints> {
8
9
  /**
9
10
  * if true, stops the media stream when call is left
10
11
  */
11
12
  stopOnLeave: boolean;
12
13
  logger: Logger;
13
- state: T;
14
+ state: S;
14
15
  protected readonly call: Call;
15
16
  protected readonly trackType: TrackType;
16
17
  protected subscriptions: Function[];
@@ -19,7 +20,7 @@ export declare abstract class InputMediaDeviceManager<T extends InputMediaDevice
19
20
  private filters;
20
21
  private statusChangeConcurrencyTag;
21
22
  private filterRegistrationConcurrencyTag;
22
- protected constructor(call: Call, state: T, trackType: TrackType);
23
+ protected constructor(call: Call, state: S, trackType: TrackType);
23
24
  setup(): void;
24
25
  /**
25
26
  * Lists the available audio/video devices
@@ -39,7 +40,6 @@ export declare abstract class InputMediaDeviceManager<T extends InputMediaDevice
39
40
  enable(): Promise<void>;
40
41
  /**
41
42
  * Stops or pauses the stream based on state.disableMode
42
- * @param {boolean} [forceStop=false] when true, stops the tracks regardless of the state.disableMode
43
43
  */
44
44
  disable(options: {
45
45
  forceStop?: boolean;
@@ -90,7 +90,7 @@ export declare abstract class InputMediaDeviceManager<T extends InputMediaDevice
90
90
  protected applySettingsToStream(): Promise<void>;
91
91
  protected abstract getDevices(): Observable<MediaDeviceInfo[]>;
92
92
  protected abstract getStream(constraints: C): Promise<MediaStream>;
93
- protected publishStream(stream: MediaStream): Promise<void>;
93
+ protected publishStream(stream: MediaStream, options?: TrackPublishOptions): Promise<void>;
94
94
  protected stopPublishStream(): Promise<void>;
95
95
  protected getTracks(): MediaStreamTrack[];
96
96
  protected muteStream(stopTracks?: boolean): Promise<void>;
@@ -2,8 +2,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { BrowserPermission, BrowserPermissionState } from './BrowserPermission';
3
3
  export type InputDeviceStatus = 'enabled' | 'disabled' | undefined;
4
4
  export type TrackDisableMode = 'stop-tracks' | 'disable-tracks';
5
- export declare abstract class InputMediaDeviceManagerState<C = MediaTrackConstraints> {
6
- readonly disableMode: TrackDisableMode;
5
+ export declare abstract class DeviceManagerState<C = MediaTrackConstraints> {
7
6
  protected statusSubject: BehaviorSubject<InputDeviceStatus>;
8
7
  protected optimisticStatusSubject: BehaviorSubject<InputDeviceStatus>;
9
8
  protected mediaStreamSubject: BehaviorSubject<MediaStream | undefined>;
@@ -49,14 +48,15 @@ export declare abstract class InputMediaDeviceManagerState<C = MediaTrackConstra
49
48
  * (i.e. browser's UI for allowing or disallowing device access is visible)
50
49
  */
51
50
  isPromptingPermission$: Observable<boolean>;
51
+ readonly disableMode: TrackDisableMode;
52
52
  /**
53
- * Constructs new InputMediaDeviceManagerState instance.
53
+ * Constructs a new InputMediaDeviceManagerState instance.
54
54
  *
55
55
  * @param disableMode the disable mode to use.
56
56
  * @param permission the BrowserPermission to use for querying.
57
57
  * `undefined` means no permission is required.
58
58
  */
59
- constructor(disableMode?: TrackDisableMode, permission?: BrowserPermission);
59
+ constructor(disableMode: TrackDisableMode, permission: BrowserPermission | undefined);
60
60
  /**
61
61
  * The device status
62
62
  */
@@ -1,11 +1,12 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import type { INoiseCancellation } from '@stream-io/audio-filters-web';
3
3
  import { Call } from '../Call';
4
- import { InputMediaDeviceManager } from './InputMediaDeviceManager';
4
+ import { AudioDeviceManager } from './AudioDeviceManager';
5
5
  import { MicrophoneManagerState } from './MicrophoneManagerState';
6
- import { TrackDisableMode } from './InputMediaDeviceManagerState';
6
+ import { TrackDisableMode } from './DeviceManagerState';
7
+ import { AudioBitrateProfile } from '../gen/video/sfu/models/models';
7
8
  import { AudioSettingsResponse } from '../gen/coordinator';
8
- export declare class MicrophoneManager extends InputMediaDeviceManager<MicrophoneManagerState> {
9
+ export declare class MicrophoneManager extends AudioDeviceManager<MicrophoneManagerState> {
9
10
  private speakingWhileMutedNotificationEnabled;
10
11
  private soundDetectorConcurrencyTag;
11
12
  private soundDetectorCleanup?;
@@ -42,6 +43,7 @@ export declare class MicrophoneManager extends InputMediaDeviceManager<Microphon
42
43
  apply(settings: AudioSettingsResponse, publish: boolean): Promise<void>;
43
44
  protected getDevices(): Observable<MediaDeviceInfo[]>;
44
45
  protected getStream(constraints: MediaTrackConstraints): Promise<MediaStream>;
46
+ protected doSetAudioBitrateProfile(profile: AudioBitrateProfile): void;
45
47
  private startSpeakingWhileMutedDetection;
46
48
  private stopSpeakingWhileMutedDetection;
47
49
  }
@@ -1,18 +1,14 @@
1
- import { Observable } from 'rxjs';
2
- import { InputMediaDeviceManagerState, TrackDisableMode } from './InputMediaDeviceManagerState';
3
- export declare class MicrophoneManagerState extends InputMediaDeviceManagerState {
1
+ import { TrackDisableMode } from './DeviceManagerState';
2
+ import { AudioDeviceManagerState } from './AudioDeviceManagerState';
3
+ export declare class MicrophoneManagerState extends AudioDeviceManagerState<MediaTrackConstraints> {
4
4
  private speakingWhileMutedSubject;
5
5
  /**
6
- * An Observable that emits `true` if the user's microphone is muted but they'are speaking.
7
- *
8
- * This feature is not available in the React Native SDK.
6
+ * An Observable that emits `true` if the user's microphone is muted, but they're speaking.
9
7
  */
10
- speakingWhileMuted$: Observable<boolean>;
8
+ speakingWhileMuted$: import("rxjs").Observable<boolean>;
11
9
  constructor(disableMode: TrackDisableMode);
12
10
  /**
13
- * `true` if the user's microphone is muted but they'are speaking.
14
- *
15
- * This feature is not available in the React Native SDK.
11
+ * `true` if the user's microphone is muted but they're speaking.
16
12
  */
17
13
  get speakingWhileMuted(): boolean;
18
14
  /**
@@ -1,9 +1,10 @@
1
1
  import { Observable } from 'rxjs';
2
- import { InputMediaDeviceManager } from './InputMediaDeviceManager';
2
+ import { AudioDeviceManager } from './AudioDeviceManager';
3
3
  import { ScreenShareState } from './ScreenShareState';
4
4
  import { Call } from '../Call';
5
+ import { AudioBitrateProfile } from '../gen/video/sfu/models/models';
5
6
  import { ScreenShareSettings } from '../types';
6
- export declare class ScreenShareManager extends InputMediaDeviceManager<ScreenShareState, DisplayMediaStreamOptions> {
7
+ export declare class ScreenShareManager extends AudioDeviceManager<ScreenShareState, DisplayMediaStreamOptions> {
7
8
  constructor(call: Call);
8
9
  setup(): void;
9
10
  /**
@@ -29,6 +30,7 @@ export declare class ScreenShareManager extends InputMediaDeviceManager<ScreenSh
29
30
  setSettings(settings: ScreenShareSettings | undefined): void;
30
31
  protected getDevices(): Observable<MediaDeviceInfo[]>;
31
32
  protected getStream(constraints: DisplayMediaStreamOptions): Promise<MediaStream>;
33
+ protected doSetAudioBitrateProfile(profile: AudioBitrateProfile): void;
32
34
  protected stopPublishStream(): Promise<void>;
33
35
  /**
34
36
  * Overrides the default `select` method to throw an error.
@@ -1,6 +1,6 @@
1
- import { InputMediaDeviceManagerState } from './InputMediaDeviceManagerState';
1
+ import { AudioDeviceManagerState } from './AudioDeviceManagerState';
2
2
  import { ScreenShareSettings } from '../types';
3
- export declare class ScreenShareState extends InputMediaDeviceManagerState<DisplayMediaStreamOptions> {
3
+ export declare class ScreenShareState extends AudioDeviceManagerState<DisplayMediaStreamOptions> {
4
4
  private audioEnabledSubject;
5
5
  private settingsSubject;
6
6
  /**
@@ -11,6 +11,10 @@ export declare class ScreenShareState extends InputMediaDeviceManagerState<Displ
11
11
  * An Observable that emits the current screen share settings.
12
12
  */
13
13
  settings$: import("rxjs").Observable<ScreenShareSettings | undefined>;
14
+ /**
15
+ * Constructs a new ScreenShareState instance.
16
+ */
17
+ constructor();
14
18
  /**
15
19
  * @internal
16
20
  */
@@ -1,6 +1,7 @@
1
- import { BehaviorSubject, Observable } from 'rxjs';
1
+ import { BehaviorSubject } from 'rxjs';
2
2
  import { Tracer } from '../stats';
3
3
  export declare class SpeakerState {
4
+ private tracer;
4
5
  protected selectedDeviceSubject: BehaviorSubject<string>;
5
6
  protected volumeSubject: BehaviorSubject<number>;
6
7
  /**
@@ -12,14 +13,13 @@ export declare class SpeakerState {
12
13
  *
13
14
  * Note: this feature is not supported in React Native
14
15
  */
15
- selectedDevice$: Observable<string>;
16
+ selectedDevice$: import("rxjs").Observable<string>;
16
17
  /**
17
18
  * An Observable that emits the currently selected volume
18
19
  *
19
20
  * Note: this feature is not supported in React Native
20
21
  */
21
- volume$: Observable<number>;
22
- private tracer;
22
+ volume$: import("rxjs").Observable<number>;
23
23
  constructor(tracer: Tracer);
24
24
  /**
25
25
  * The currently selected device
@@ -1,7 +1,7 @@
1
1
  export * from './utils';
2
2
  export * from './devices';
3
- export * from './InputMediaDeviceManager';
4
- export * from './InputMediaDeviceManagerState';
3
+ export * from './DeviceManager';
4
+ export * from './DeviceManagerState';
5
5
  export * from './CameraManager';
6
6
  export * from './CameraManagerState';
7
7
  export * from './MicrophoneManager';
@@ -86,6 +86,12 @@ export interface AudioSettingsRequest {
86
86
  * @memberof AudioSettingsRequest
87
87
  */
88
88
  default_device: AudioSettingsRequestDefaultDeviceEnum;
89
+ /**
90
+ *
91
+ * @type {boolean}
92
+ * @memberof AudioSettingsRequest
93
+ */
94
+ hifi_audio_enabled?: boolean;
89
95
  /**
90
96
  *
91
97
  * @type {boolean}
@@ -143,6 +149,12 @@ export interface AudioSettingsResponse {
143
149
  * @memberof AudioSettingsResponse
144
150
  */
145
151
  default_device: AudioSettingsResponseDefaultDeviceEnum;
152
+ /**
153
+ *
154
+ * @type {boolean}
155
+ * @memberof AudioSettingsResponse
156
+ */
157
+ hifi_audio_enabled?: boolean;
146
158
  /**
147
159
  *
148
160
  * @type {boolean}
@@ -402,6 +414,24 @@ export interface CallClosedCaption {
402
414
  * @memberof CallClosedCaption
403
415
  */
404
416
  end_time: string;
417
+ /**
418
+ *
419
+ * @type {string}
420
+ * @memberof CallClosedCaption
421
+ */
422
+ id: string;
423
+ /**
424
+ *
425
+ * @type {string}
426
+ * @memberof CallClosedCaption
427
+ */
428
+ language: string;
429
+ /**
430
+ *
431
+ * @type {string}
432
+ * @memberof CallClosedCaption
433
+ */
434
+ service?: string;
405
435
  /**
406
436
  *
407
437
  * @type {string}
@@ -420,6 +450,12 @@ export interface CallClosedCaption {
420
450
  * @memberof CallClosedCaption
421
451
  */
422
452
  text: string;
453
+ /**
454
+ *
455
+ * @type {boolean}
456
+ * @memberof CallClosedCaption
457
+ */
458
+ translated: boolean;
423
459
  /**
424
460
  *
425
461
  * @type {UserResponse}
@@ -913,6 +949,18 @@ export interface CallIngressResponse {
913
949
  * @memberof CallIngressResponse
914
950
  */
915
951
  rtmp: RTMPIngress;
952
+ /**
953
+ *
954
+ * @type {SRTIngress}
955
+ * @memberof CallIngressResponse
956
+ */
957
+ srt: SRTIngress;
958
+ /**
959
+ *
960
+ * @type {WHIPIngress}
961
+ * @memberof CallIngressResponse
962
+ */
963
+ whip: WHIPIngress;
916
964
  }
917
965
  /**
918
966
  * This event is sent when a call is started. Clients receiving this event should start the call.
@@ -1797,6 +1845,12 @@ export interface CallResponse {
1797
1845
  * @memberof CallResponse
1798
1846
  */
1799
1847
  transcribing: boolean;
1848
+ /**
1849
+ *
1850
+ * @type {boolean}
1851
+ * @memberof CallResponse
1852
+ */
1853
+ translating: boolean;
1800
1854
  /**
1801
1855
  * The type of call
1802
1856
  * @type {string}
@@ -2107,6 +2161,12 @@ export interface CallSessionParticipantLeftEvent {
2107
2161
  * @memberof CallSessionParticipantLeftEvent
2108
2162
  */
2109
2163
  participant: CallParticipantResponse;
2164
+ /**
2165
+ * The reason why the participant left the session
2166
+ * @type {string}
2167
+ * @memberof CallSessionParticipantLeftEvent
2168
+ */
2169
+ reason?: string;
2110
2170
  /**
2111
2171
  * Call session ID
2112
2172
  * @type {string}
@@ -2750,7 +2810,7 @@ export interface CallUpdatedEvent {
2750
2810
  */
2751
2811
  created_at: string;
2752
2812
  /**
2753
- * The type of event: "call.ended" in this case
2813
+ * The type of event: "call.updated" in this case
2754
2814
  * @type {string}
2755
2815
  * @memberof CallUpdatedEvent
2756
2816
  */
@@ -2855,6 +2915,12 @@ export interface CallUserMutedEvent {
2855
2915
  * @memberof CallUserMutedEvent
2856
2916
  */
2857
2917
  muted_user_ids: Array<string>;
2918
+ /**
2919
+ *
2920
+ * @type {string}
2921
+ * @memberof CallUserMutedEvent
2922
+ */
2923
+ reason: string;
2858
2924
  /**
2859
2925
  * The type of event: "call.user_muted" in this case
2860
2926
  * @type {string}
@@ -3802,6 +3868,12 @@ export interface GetCallReportResponse {
3802
3868
  * @memberof GetCallReportResponse
3803
3869
  */
3804
3870
  report: ReportResponse;
3871
+ /**
3872
+ *
3873
+ * @type {CallSessionResponse}
3874
+ * @memberof GetCallReportResponse
3875
+ */
3876
+ session?: CallSessionResponse;
3805
3877
  /**
3806
3878
  *
3807
3879
  * @type {string}
@@ -4941,6 +5013,7 @@ export declare const OwnCapability: {
4941
5013
  readonly REMOVE_CALL_MEMBER: "remove-call-member";
4942
5014
  readonly SCREENSHARE: "screenshare";
4943
5015
  readonly SEND_AUDIO: "send-audio";
5016
+ readonly SEND_CLOSED_CAPTIONS_CALL: "send-closed-captions-call";
4944
5017
  readonly SEND_VIDEO: "send-video";
4945
5018
  readonly START_BROADCAST_CALL: "start-broadcast-call";
4946
5019
  readonly START_CLOSED_CAPTIONS_CALL: "start-closed-captions-call";
@@ -6203,6 +6276,19 @@ export interface SFUResponse {
6203
6276
  */
6204
6277
  ws_endpoint: string;
6205
6278
  }
6279
+ /**
6280
+ *
6281
+ * @export
6282
+ * @interface SRTIngress
6283
+ */
6284
+ export interface SRTIngress {
6285
+ /**
6286
+ *
6287
+ * @type {string}
6288
+ * @memberof SRTIngress
6289
+ */
6290
+ address: string;
6291
+ }
6206
6292
  /**
6207
6293
  *
6208
6294
  * @export
@@ -6372,6 +6458,25 @@ export interface SortParamRequest {
6372
6458
  */
6373
6459
  field?: string;
6374
6460
  }
6461
+ /**
6462
+ *
6463
+ * @export
6464
+ * @interface SpeechSegmentConfig
6465
+ */
6466
+ export interface SpeechSegmentConfig {
6467
+ /**
6468
+ *
6469
+ * @type {number}
6470
+ * @memberof SpeechSegmentConfig
6471
+ */
6472
+ max_speech_caption_ms?: number;
6473
+ /**
6474
+ *
6475
+ * @type {number}
6476
+ * @memberof SpeechSegmentConfig
6477
+ */
6478
+ silence_duration_ms?: number;
6479
+ }
6375
6480
  /**
6376
6481
  *
6377
6482
  * @export
@@ -6396,6 +6501,12 @@ export interface StartClosedCaptionsRequest {
6396
6501
  * @memberof StartClosedCaptionsRequest
6397
6502
  */
6398
6503
  language?: StartClosedCaptionsRequestLanguageEnum;
6504
+ /**
6505
+ *
6506
+ * @type {SpeechSegmentConfig}
6507
+ * @memberof StartClosedCaptionsRequest
6508
+ */
6509
+ speech_segment_config?: SpeechSegmentConfig;
6399
6510
  }
6400
6511
  /**
6401
6512
  * @export
@@ -6954,7 +7065,19 @@ export interface TranscriptionSettingsRequest {
6954
7065
  * @type {string}
6955
7066
  * @memberof TranscriptionSettingsRequest
6956
7067
  */
6957
- mode: TranscriptionSettingsRequestModeEnum;
7068
+ mode?: TranscriptionSettingsRequestModeEnum;
7069
+ /**
7070
+ *
7071
+ * @type {SpeechSegmentConfig}
7072
+ * @memberof TranscriptionSettingsRequest
7073
+ */
7074
+ speech_segment_config?: SpeechSegmentConfig;
7075
+ /**
7076
+ *
7077
+ * @type {TranslationSettings}
7078
+ * @memberof TranscriptionSettingsRequest
7079
+ */
7080
+ translation?: TranslationSettings;
6958
7081
  }
6959
7082
  /**
6960
7083
  * @export
@@ -7041,6 +7164,18 @@ export interface TranscriptionSettingsResponse {
7041
7164
  * @memberof TranscriptionSettingsResponse
7042
7165
  */
7043
7166
  mode: TranscriptionSettingsResponseModeEnum;
7167
+ /**
7168
+ *
7169
+ * @type {SpeechSegmentConfig}
7170
+ * @memberof TranscriptionSettingsResponse
7171
+ */
7172
+ speech_segment_config?: SpeechSegmentConfig;
7173
+ /**
7174
+ *
7175
+ * @type {TranslationSettings}
7176
+ * @memberof TranscriptionSettingsResponse
7177
+ */
7178
+ translation?: TranslationSettings;
7044
7179
  }
7045
7180
  /**
7046
7181
  * @export
@@ -7103,6 +7238,25 @@ export declare const TranscriptionSettingsResponseModeEnum: {
7103
7238
  readonly AUTO_ON: "auto-on";
7104
7239
  };
7105
7240
  export type TranscriptionSettingsResponseModeEnum = (typeof TranscriptionSettingsResponseModeEnum)[keyof typeof TranscriptionSettingsResponseModeEnum];
7241
+ /**
7242
+ *
7243
+ * @export
7244
+ * @interface TranslationSettings
7245
+ */
7246
+ export interface TranslationSettings {
7247
+ /**
7248
+ *
7249
+ * @type {boolean}
7250
+ * @memberof TranslationSettings
7251
+ */
7252
+ enabled?: boolean;
7253
+ /**
7254
+ *
7255
+ * @type {Array<string>}
7256
+ * @memberof TranslationSettings
7257
+ */
7258
+ languages?: Array<string>;
7259
+ }
7106
7260
  /**
7107
7261
  * UnblockUserRequest is the payload for unblocking a user.
7108
7262
  * @export
@@ -7983,6 +8137,19 @@ export declare const VideoSettingsResponseCameraFacingEnum: {
7983
8137
  readonly EXTERNAL: "external";
7984
8138
  };
7985
8139
  export type VideoSettingsResponseCameraFacingEnum = (typeof VideoSettingsResponseCameraFacingEnum)[keyof typeof VideoSettingsResponseCameraFacingEnum];
8140
+ /**
8141
+ *
8142
+ * @export
8143
+ * @interface WHIPIngress
8144
+ */
8145
+ export interface WHIPIngress {
8146
+ /**
8147
+ * URL for a new whip input, every time a new link is created
8148
+ * @type {string}
8149
+ * @memberof WHIPIngress
8150
+ */
8151
+ address: string;
8152
+ }
7986
8153
  /**
7987
8154
  * Websocket auth message
7988
8155
  * @export
@@ -297,6 +297,12 @@ export interface PublishOption {
297
297
  * @generated from protobuf field: bool use_single_layer = 9;
298
298
  */
299
299
  useSingleLayer: boolean;
300
+ /**
301
+ * Audio bitrate profiles for different audio quality profiles.
302
+ *
303
+ * @generated from protobuf field: repeated stream.video.sfu.models.AudioBitrate audio_bitrate_profiles = 10;
304
+ */
305
+ audioBitrateProfiles: AudioBitrate[];
300
306
  }
301
307
  /**
302
308
  * @generated from protobuf message stream.video.sfu.models.Codec
@@ -340,6 +346,19 @@ export interface ICETrickle {
340
346
  */
341
347
  sessionId: string;
342
348
  }
349
+ /**
350
+ * @generated from protobuf message stream.video.sfu.models.AudioBitrate
351
+ */
352
+ export interface AudioBitrate {
353
+ /**
354
+ * @generated from protobuf field: stream.video.sfu.models.AudioBitrateProfile profile = 1;
355
+ */
356
+ profile: AudioBitrateProfile;
357
+ /**
358
+ * @generated from protobuf field: int32 bitrate = 2;
359
+ */
360
+ bitrate: number;
361
+ }
343
362
  /**
344
363
  * @generated from protobuf message stream.video.sfu.models.TrackInfo
345
364
  */
@@ -790,6 +809,23 @@ export declare enum ParticipantSource {
790
809
  */
791
810
  SRT = 5
792
811
  }
812
+ /**
813
+ * @generated from protobuf enum stream.video.sfu.models.AudioBitrateProfile
814
+ */
815
+ export declare enum AudioBitrateProfile {
816
+ /**
817
+ * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_VOICE_STANDARD_UNSPECIFIED = 0;
818
+ */
819
+ VOICE_STANDARD_UNSPECIFIED = 0,
820
+ /**
821
+ * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_VOICE_HIGH_QUALITY = 1;
822
+ */
823
+ VOICE_HIGH_QUALITY = 1,
824
+ /**
825
+ * @generated from protobuf enum value: AUDIO_BITRATE_PROFILE_MUSIC_HIGH_QUALITY = 2;
826
+ */
827
+ MUSIC_HIGH_QUALITY = 2
828
+ }
793
829
  /**
794
830
  * @generated from protobuf enum stream.video.sfu.models.ErrorCode
795
831
  */
@@ -1209,6 +1245,13 @@ declare class ICETrickle$Type extends MessageType<ICETrickle> {
1209
1245
  * @generated MessageType for protobuf message stream.video.sfu.models.ICETrickle
1210
1246
  */
1211
1247
  export declare const ICETrickle: ICETrickle$Type;
1248
+ declare class AudioBitrate$Type extends MessageType<AudioBitrate> {
1249
+ constructor();
1250
+ }
1251
+ /**
1252
+ * @generated MessageType for protobuf message stream.video.sfu.models.AudioBitrate
1253
+ */
1254
+ export declare const AudioBitrate: AudioBitrate$Type;
1212
1255
  declare class TrackInfo$Type extends MessageType<TrackInfo> {
1213
1256
  constructor();
1214
1257
  }