@whereby.com/media 5.0.2 → 6.0.0

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.
package/dist/index.cjs CHANGED
@@ -2526,11 +2526,75 @@ var rtcManagerEvents = {
2526
2526
 
2527
2527
  var _a$2, _b$1;
2528
2528
  const adapter$2 = (_a$2 = adapterRaw.default) !== null && _a$2 !== void 0 ? _a$2 : adapterRaw;
2529
+ const isSafari = ((_b$1 = adapter$2.browserDetails) === null || _b$1 === void 0 ? void 0 : _b$1.browser) === "safari";
2530
+ const parseResolution = (res) => res.split(/[^\d]/g).map((n) => parseInt(n, 10));
2531
+ function getMediaConstraints({ audioWanted, videoWanted, disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }) {
2532
+ let HIGH_HEIGHT = 480;
2533
+ let LOW_HEIGHT = 240;
2534
+ if (hd) {
2535
+ HIGH_HEIGHT = lax || isSafari ? 720 : { min: 360, ideal: 720 };
2536
+ }
2537
+ if (simulcast) {
2538
+ if (hd === false) {
2539
+ HIGH_HEIGHT = 360;
2540
+ LOW_HEIGHT = 270;
2541
+ }
2542
+ else {
2543
+ LOW_HEIGHT = 360;
2544
+ }
2545
+ }
2546
+ const { audioId, videoId } = preferredDeviceIds;
2547
+ const constraints = Object.assign(Object.assign({}, (audioWanted && {
2548
+ audio: Object.assign(Object.assign(Object.assign({}, (audioId ? { deviceId: audioId } : {})), (disableAGC ? { autoGainControl: false } : {})), (disableAEC ? { echoCancellation: false } : {})),
2549
+ })), (videoWanted && {
2550
+ video: Object.assign({ height: lowDataMode ? LOW_HEIGHT : HIGH_HEIGHT, frameRate: lowDataMode && !simulcast ? 15 : 24 }, (videoId ? { deviceId: videoId } : { facingMode: "user" })),
2551
+ }));
2552
+ if (lax) {
2553
+ if (audioWanted && !audioId)
2554
+ constraints.audio = true;
2555
+ if (videoWanted && !videoId && typeof constraints.video === "object") {
2556
+ delete constraints.video.facingMode;
2557
+ }
2558
+ return constraints;
2559
+ }
2560
+ if (videoWanted && typeof constraints.video === "object") {
2561
+ if (resolution) {
2562
+ const [w, h, fps] = parseResolution(resolution);
2563
+ if (w)
2564
+ constraints.video.width = { exact: w };
2565
+ if (h)
2566
+ constraints.video.height = { exact: h };
2567
+ if (fps)
2568
+ constraints.video.frameRate = { exact: fps };
2569
+ delete constraints.video.facingMode;
2570
+ }
2571
+ else {
2572
+ constraints.video.aspectRatio = widescreen ? 16 / 9 : 4 / 3;
2573
+ }
2574
+ }
2575
+ return constraints;
2576
+ }
2577
+ function getConstraints({ devices, videoId, audioId, options, type = "ideal" }) {
2578
+ const audioDevices = devices.filter((d) => d.kind === "audioinput");
2579
+ const videoDevices = devices.filter((d) => d.kind === "videoinput");
2580
+ const preferredDeviceIds = {};
2581
+ if (typeof audioId === "string" && audioDevices.some((d) => d.deviceId === audioId)) {
2582
+ preferredDeviceIds.audioId = { [type]: audioId };
2583
+ }
2584
+ if (typeof videoId === "string" && videoDevices.some((d) => d.deviceId === videoId)) {
2585
+ preferredDeviceIds.videoId = { [type]: videoId };
2586
+ }
2587
+ const constraints = getMediaConstraints(Object.assign({ preferredDeviceIds, audioWanted: Boolean(audioId) && audioDevices.length > 0, videoWanted: Boolean(videoId) && videoDevices.length > 0 }, options));
2588
+ return constraints;
2589
+ }
2590
+
2591
+ var _a$1, _b;
2592
+ const adapter$1 = (_a$1 = adapterRaw.default) !== null && _a$1 !== void 0 ? _a$1 : adapterRaw;
2529
2593
  const logger$6 = new Logger();
2530
2594
  const ICE_PUBLIC_IP_GATHERING_TIMEOUT = 3 * 1000;
2531
2595
  const ICE_RESTART_DELAY = 2 * 1000;
2532
- const browserName$1 = (_b$1 = adapter$2.browserDetails) === null || _b$1 === void 0 ? void 0 : _b$1.browser;
2533
- const browserVersion = adapter$2.browserDetails.version;
2596
+ const browserName$1 = (_b = adapter$1.browserDetails) === null || _b === void 0 ? void 0 : _b.browser;
2597
+ const browserVersion = adapter$1.browserDetails.version;
2534
2598
  let unloading$1 = false;
2535
2599
  if (browserName$1 === "chrome") {
2536
2600
  window.document.addEventListener("beforeunload", () => {
@@ -3515,7 +3579,7 @@ class P2pRtcManager {
3515
3579
  }
3516
3580
  else {
3517
3581
  if (localStream.getVideoTracks().length === 0) {
3518
- const constraints = this._webrtcProvider.getMediaConstraints().video;
3582
+ const constraints = getConstraints(this._webrtcProvider.getMediaConstraints()).video;
3519
3583
  if (!constraints) {
3520
3584
  return;
3521
3585
  }
@@ -4384,10 +4448,10 @@ const STREAM_TYPES = {
4384
4448
  screenshare: "screenshare",
4385
4449
  };
4386
4450
 
4387
- var _a$1;
4388
- const adapter$1 = (_a$1 = adapterRaw.default) !== null && _a$1 !== void 0 ? _a$1 : adapterRaw;
4451
+ var _a;
4452
+ const adapter = (_a = adapterRaw.default) !== null && _a !== void 0 ? _a : adapterRaw;
4389
4453
  const logger$2 = new Logger();
4390
- const browserName = adapter$1.browserDetails.browser;
4454
+ const browserName = adapter.browserDetails.browser;
4391
4455
  let unloading = false;
4392
4456
  const RESTARTICE_ERROR_RETRY_THRESHOLD_IN_MS = 3500;
4393
4457
  const RESTARTICE_ERROR_MAX_RETRY_COUNT = 5;
@@ -5471,7 +5535,7 @@ class VegaRtcManager {
5471
5535
  }, stopCameraDelay);
5472
5536
  }
5473
5537
  else if (localStream.getVideoTracks().length === 0) {
5474
- const constraints = this._webrtcProvider.getMediaConstraints().video;
5538
+ const constraints = getConstraints(this._webrtcProvider.getMediaConstraints()).video;
5475
5539
  navigator.mediaDevices
5476
5540
  .getUserMedia({ video: constraints })
5477
5541
  .then((stream) => {
@@ -6996,73 +7060,6 @@ class BandwidthTester extends EventEmitter {
6996
7060
  }
6997
7061
  }
6998
7062
 
6999
- var _a, _b;
7000
- const adapter = (_a = adapterRaw.default) !== null && _a !== void 0 ? _a : adapterRaw;
7001
- const isSafari = ((_b = adapter.browserDetails) === null || _b === void 0 ? void 0 : _b.browser) === "safari";
7002
- const parseResolution = (res) => res.split(/[^\d]/g).map((n) => parseInt(n, 10));
7003
- function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }) {
7004
- var _a, _b;
7005
- let HIGH_HEIGHT = 480;
7006
- let LOW_HEIGHT = 240;
7007
- if (hd) {
7008
- HIGH_HEIGHT = lax || isSafari ? 720 : { min: 360, ideal: 720 };
7009
- }
7010
- if (simulcast) {
7011
- if (hd === false) {
7012
- HIGH_HEIGHT = 360;
7013
- LOW_HEIGHT = 270;
7014
- }
7015
- else {
7016
- LOW_HEIGHT = 360;
7017
- }
7018
- }
7019
- const constraints = {
7020
- audio: Object.assign({}, (preferredDeviceIds.audioId && { deviceId: preferredDeviceIds.audioId })),
7021
- video: Object.assign(Object.assign({}, (preferredDeviceIds.videoId ? { deviceId: preferredDeviceIds.videoId } : { facingMode: "user" })), { height: lowDataMode ? LOW_HEIGHT : HIGH_HEIGHT, frameRate: lowDataMode && !simulcast ? 15 : 24 }),
7022
- };
7023
- if (lax) {
7024
- if (!((_a = constraints.audio) === null || _a === void 0 ? void 0 : _a.deviceId))
7025
- constraints.audio = true;
7026
- (_b = constraints.video) === null || _b === void 0 ? true : delete _b.facingMode;
7027
- return constraints;
7028
- }
7029
- if (resolution) {
7030
- const [w, h, fps] = parseResolution(resolution);
7031
- if (w)
7032
- constraints.video.width = { exact: w };
7033
- if (h)
7034
- constraints.video.height = { exact: h };
7035
- if (fps)
7036
- constraints.video.frameRate = { exact: fps };
7037
- delete constraints.video.facingMode;
7038
- }
7039
- else {
7040
- constraints.video.aspectRatio = widescreen ? 16 / 9 : 4 / 3;
7041
- }
7042
- if (disableAGC)
7043
- constraints.audio.autoGainControl = false;
7044
- if (disableAEC)
7045
- constraints.audio.echoCancellation = false;
7046
- return constraints;
7047
- }
7048
- function getConstraints({ devices, videoId, audioId, options, type = "ideal" }) {
7049
- const audioDevices = devices.filter((d) => d.kind === "audioinput");
7050
- const videoDevices = devices.filter((d) => d.kind === "videoinput");
7051
- const useDefaultAudio = !audioId || !audioDevices.some((d) => d.deviceId === audioId);
7052
- const useDefaultVideo = !videoId || !videoDevices.some((d) => d.deviceId === videoId);
7053
- const constraints = getMediaConstraints(Object.assign({ preferredDeviceIds: {
7054
- audioId: useDefaultAudio ? null : { [type]: audioId },
7055
- videoId: useDefaultVideo ? null : { [type]: videoId },
7056
- } }, options));
7057
- if (audioId === false || !audioDevices.length) {
7058
- delete constraints.audio;
7059
- }
7060
- if (videoId === false || !videoDevices.length) {
7061
- delete constraints.video;
7062
- }
7063
- return constraints;
7064
- }
7065
-
7066
7063
  const logger = new Logger();
7067
7064
  const isMobile = /mobi/i.test(navigator.userAgent);
7068
7065
  class NoDevicesError extends Error {
@@ -7096,23 +7093,29 @@ function buildDeviceList({ busyDeviceIds, devices, kind }) {
7096
7093
  label: `${busyDeviceIds.includes(d.deviceId) ? "(busy) " : ""}${d.label || d.deviceId.slice(0, 5)}`,
7097
7094
  busy: busyDeviceIds.includes(d.deviceId),
7098
7095
  }));
7099
- return deviceList && deviceList.length !== 0
7100
- ? deviceList
7101
- : [{ [idFieldsByKind[kind]]: "", label: "Default" }];
7096
+ return deviceList && deviceList.length !== 0 ? deviceList : [{ [idFieldsByKind[kind]]: "", label: "Default" }];
7102
7097
  }
7103
7098
  function getUserMedia(constraints) {
7104
- if (!constraints.audio && !constraints.video) {
7105
- return Promise.reject(new NoDevicesError("No provided devices"));
7106
- }
7107
- return navigator.mediaDevices.getUserMedia(constraints).catch((error) => {
7108
- const message = `${error}, ${JSON.stringify(constraints, null, 2)}`;
7109
- logger.error(`getUserMedia ${message}`);
7110
- throw error;
7099
+ return __awaiter(this, void 0, void 0, function* () {
7100
+ if (!constraints.audio && !constraints.video) {
7101
+ throw new NoDevicesError("No provided devices");
7102
+ }
7103
+ try {
7104
+ const stream = yield navigator.mediaDevices.getUserMedia(constraints);
7105
+ return stream;
7106
+ }
7107
+ catch (error) {
7108
+ const message = `${error}, ${JSON.stringify(constraints, null, 2)}`;
7109
+ logger.error(`getUserMedia ${message}`);
7110
+ throw error;
7111
+ }
7111
7112
  });
7112
7113
  }
7113
7114
  function getSettingsFromTrack(kind, track, devices, lastUsedId) {
7114
7115
  var _a, _b, _c;
7115
- let settings = { deviceId: null };
7116
+ let settings = {
7117
+ deviceId: undefined,
7118
+ };
7116
7119
  if (!track) {
7117
7120
  if (lastUsedId && devices) {
7118
7121
  settings.deviceId = (_a = devices.find((d) => d.deviceId === lastUsedId && d.kind === kind)) === null || _a === void 0 ? void 0 : _a.deviceId;
@@ -7136,11 +7139,10 @@ function getSettingsFromTrack(kind, track, devices, lastUsedId) {
7136
7139
  if (settings.deviceId)
7137
7140
  return settings;
7138
7141
  settings.deviceId = (_c = track.getConstraints()) === null || _c === void 0 ? void 0 : _c.deviceId;
7139
- settings.broken = 1;
7140
7142
  return settings;
7141
7143
  }
7142
7144
  function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }) {
7143
- const usable = (d) => ((d === null || d === void 0 ? void 0 : d.readyState) === "live" ? d : null);
7145
+ const usable = (d) => ((d === null || d === void 0 ? void 0 : d.readyState) === "live" ? d : undefined);
7144
7146
  videoTrack = usable(videoTrack) || stoppedVideoTrack;
7145
7147
  audioTrack = usable(audioTrack);
7146
7148
  const video = getSettingsFromTrack("videoinput", videoTrack, devices, lastVideoId);
@@ -7173,7 +7175,7 @@ function getStream(constraintOpt_1) {
7173
7175
  let newConstraints;
7174
7176
  let retryConstraintOpt;
7175
7177
  let stream = null;
7176
- const only = (constraintOpt.audioId === false && "video") || (constraintOpt.videoId === false && "audio");
7178
+ const only = (!constraintOpt.audioId && "video") || (!constraintOpt.videoId && "audio");
7177
7179
  const stopTracks = isMobile || only !== "video";
7178
7180
  const constraints = getConstraints(constraintOpt);
7179
7181
  const addDetails = (err, orgErr) => {
@@ -7184,7 +7186,7 @@ function getStream(constraintOpt_1) {
7184
7186
  return err;
7185
7187
  }
7186
7188
  else {
7187
- return new Error("Unknown error");
7189
+ return new Error("GetStream: gUM rejected without error");
7188
7190
  }
7189
7191
  };
7190
7192
  const getSingleStream = (e) => __awaiter(this, void 0, void 0, function* () {
@@ -7218,12 +7220,18 @@ function getStream(constraintOpt_1) {
7218
7220
  }
7219
7221
  if ((e === null || e === void 0 ? void 0 : e.name) === "OverconstrainedError") {
7220
7222
  const laxConstraints = {
7221
- deviceId: { videoId: null, audioId: null },
7223
+ deviceId: { videoId: true, audioId: true },
7222
7224
  width: { lax: true },
7223
7225
  height: { lax: true },
7224
- "": { audioId: null, videoId: null, lax: true },
7226
+ "": { audioId: true, videoId: true, lax: true },
7225
7227
  };
7226
7228
  retryConstraintOpt = laxConstraints[e.constraint || ""];
7229
+ if (!constraintOpt.audioId || only === "video") {
7230
+ delete retryConstraintOpt.audioId;
7231
+ }
7232
+ if (!constraintOpt.videoId || only === "audio") {
7233
+ delete retryConstraintOpt.videoId;
7234
+ }
7227
7235
  }
7228
7236
  else if ((e === null || e === void 0 ? void 0 : e.name) === "NotFoundError") {
7229
7237
  yield getSingleStream(e);
@@ -7247,7 +7255,7 @@ function getStream(constraintOpt_1) {
7247
7255
  const problemWith = { audio: "audioId", video: "videoId" }[((_a = /(video|audio)/.exec(errMsg)) === null || _a === void 0 ? void 0 : _a[0]) || only || ""];
7248
7256
  if (!stream && problemWith) {
7249
7257
  try {
7250
- stream = yield getUserMedia(getConstraints(Object.assign(Object.assign({}, constraintOpt), { [problemWith]: null })));
7258
+ stream = yield getUserMedia(getConstraints(Object.assign(Object.assign({}, constraintOpt), { [problemWith]: true })));
7251
7259
  }
7252
7260
  catch (e2) {
7253
7261
  logger.warn(`Re-tried ${problemWith} with no constraints, but failed: ${"" + e2}`);
@@ -7307,8 +7315,9 @@ const defaultDisplayMediaConstraints = {
7307
7315
  height: { max: window.screen.height },
7308
7316
  },
7309
7317
  };
7310
- function getDisplayMedia(constraints = defaultDisplayMediaConstraints, contentHint = "detail") {
7311
- return navigator.mediaDevices.getDisplayMedia(constraints).then((stream) => {
7318
+ function getDisplayMedia() {
7319
+ return __awaiter(this, arguments, void 0, function* (constraints = defaultDisplayMediaConstraints, contentHint = "detail") {
7320
+ const stream = yield navigator.mediaDevices.getDisplayMedia(constraints);
7312
7321
  stream.getVideoTracks().forEach((t) => {
7313
7322
  if ("contentHint" in t) {
7314
7323
  t.contentHint = contentHint;
@@ -7366,14 +7375,10 @@ function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVide
7366
7375
  }
7367
7376
  if (currentDeviceId) {
7368
7377
  if (changes.removed[currentDeviceId]) {
7369
- changedDevices[kind] = { deviceId: null };
7370
- if (kind === "audiooutput") {
7371
- const fallbackSpeakerDevice = newDevices.find((d) => d.kind === "audiooutput");
7372
- changedDevices[kind] = { deviceId: fallbackSpeakerDevice === null || fallbackSpeakerDevice === void 0 ? void 0 : fallbackSpeakerDevice.deviceId };
7373
- }
7378
+ removedDevices[kind] = changes.removed[currentDeviceId];
7374
7379
  }
7375
7380
  if (changes.changed[currentDeviceId]) {
7376
- changedDevices[kind] = { deviceId: currentDeviceId };
7381
+ changedDevices[kind] = changes.changed[currentDeviceId];
7377
7382
  }
7378
7383
  }
7379
7384
  if (Object.keys(changes.added).length > 0) {
@@ -7381,10 +7386,6 @@ function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVide
7381
7386
  const add = changes.added[deviceAdded];
7382
7387
  addedDevices[kind] = { deviceId: add.deviceId, label: add.label, kind: add.kind };
7383
7388
  }
7384
- if (Object.keys(changes.removed).length > 0) {
7385
- const [deviceRemoved] = Object.keys(changes.removed).slice(0, 1);
7386
- removedDevices[kind] = changes.removed[deviceRemoved];
7387
- }
7388
7389
  });
7389
7390
  return { addedDevices, changedDevices, removedDevices };
7390
7391
  }
package/dist/index.d.cts CHANGED
@@ -1057,7 +1057,9 @@ type SignalIceEndOfCandidatesMessage = {
1057
1057
  clientId: string;
1058
1058
  };
1059
1059
  interface WebRTCProvider {
1060
- getMediaConstraints: () => MediaStreamConstraints;
1060
+ getMediaConstraints: () => GetConstraintsOptions;
1061
+ browser?: string;
1062
+ version?: number;
1061
1063
  }
1062
1064
  type GetMediaConstraintsOptions = {
1063
1065
  disableAEC: boolean;
@@ -1065,27 +1067,32 @@ type GetMediaConstraintsOptions = {
1065
1067
  hd: boolean;
1066
1068
  lax: boolean;
1067
1069
  lowDataMode: boolean;
1070
+ audioWanted: boolean;
1071
+ videoWanted: boolean;
1068
1072
  preferredDeviceIds: {
1069
- audioId?: boolean | string | null | {
1070
- ideal?: string | null;
1071
- exact?: string | null;
1073
+ audioId?: {
1074
+ ideal?: string;
1075
+ exact?: string;
1072
1076
  };
1073
- videoId?: boolean | string | null | {
1074
- ideal?: string | null;
1075
- exact?: string | null;
1077
+ videoId?: {
1078
+ ideal?: string;
1079
+ exact?: string;
1076
1080
  };
1077
1081
  };
1078
1082
  resolution?: string;
1079
1083
  simulcast: boolean;
1080
1084
  widescreen: boolean;
1081
- usingAspectRatio16x9: boolean;
1082
1085
  };
1086
+ interface GetSettingsFromTrackResult extends Omit<MediaTrackSettings, "deviceId"> {
1087
+ deviceId?: string;
1088
+ label?: string;
1089
+ }
1083
1090
  type GetConstraintsOptions = {
1084
1091
  devices: MediaDeviceInfo[];
1085
1092
  audioId?: boolean | string;
1086
1093
  videoId?: boolean | string;
1087
1094
  type?: "ideal" | "exact";
1088
- options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds">;
1095
+ options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds" | "audioWanted" | "videoWanted">;
1089
1096
  };
1090
1097
  type GetStreamOptions = {
1091
1098
  replaceStream?: MediaStream;
@@ -1096,8 +1103,13 @@ type GetStreamResult = {
1096
1103
  replacedTracks?: MediaStreamTrack[];
1097
1104
  stream: MediaStream;
1098
1105
  };
1106
+ interface BuildDeviceListOptions {
1107
+ devices: MediaDeviceInfo[];
1108
+ busyDeviceIds: string[];
1109
+ kind: MediaDeviceKind;
1110
+ }
1099
1111
  type UpdatedDeviceInfo = {
1100
- deviceId?: string | null;
1112
+ deviceId?: string;
1101
1113
  kind?: MediaDeviceKind;
1102
1114
  label?: string;
1103
1115
  };
@@ -1112,16 +1124,8 @@ type GetUpdatedDevicesResult = {
1112
1124
  removedDevices: UpdatedDevicesInfo;
1113
1125
  };
1114
1126
  type GetDeviceDataResult = {
1115
- audio: {
1116
- deviceId: string;
1117
- label: string;
1118
- kind: string;
1119
- };
1120
- video: {
1121
- deviceId: string;
1122
- label: string;
1123
- kind: string;
1124
- };
1127
+ audio: GetSettingsFromTrackResult;
1128
+ video: GetSettingsFromTrackResult;
1125
1129
  };
1126
1130
  type SignalIceServer = {
1127
1131
  credential: string;
@@ -1155,36 +1159,47 @@ interface RemoveScreenshareStreamOptions {
1155
1159
  requestedByClientId?: string;
1156
1160
  }
1157
1161
 
1158
- declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
1159
- declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
1162
+ declare function getMediaConstraints({ audioWanted, videoWanted, disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): MediaStreamConstraints;
1163
+ declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): MediaStreamConstraints;
1160
1164
 
1161
1165
  declare const isMobile: boolean;
1162
1166
  declare class NoDevicesError extends Error {
1163
1167
  constructor(...args: any);
1164
1168
  }
1165
1169
  declare function enumerate(): Promise<MediaDeviceInfo[]>;
1166
- declare function buildDeviceList({ busyDeviceIds, devices, kind }: any): any;
1167
- declare function getUserMedia(constraints: any): Promise<MediaStream>;
1170
+ declare function buildDeviceList({ busyDeviceIds, devices, kind }: BuildDeviceListOptions): {
1171
+ [x: string]: string | boolean;
1172
+ label: string;
1173
+ busy: boolean;
1174
+ }[] | {
1175
+ [x: string]: string;
1176
+ label: string;
1177
+ }[];
1178
+ declare function getUserMedia(constraints: MediaStreamConstraints): Promise<MediaStream>;
1168
1179
  declare function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }: {
1169
- audioTrack?: MediaStreamTrack | null;
1170
- videoTrack?: MediaStreamTrack | null;
1180
+ audioTrack?: MediaStreamTrack;
1181
+ videoTrack?: MediaStreamTrack;
1171
1182
  devices: MediaDeviceInfo[];
1172
- stoppedVideoTrack?: boolean;
1183
+ stoppedVideoTrack?: MediaStreamTrack;
1173
1184
  lastAudioId?: string | undefined;
1174
1185
  lastVideoId?: string | undefined;
1175
1186
  }): GetDeviceDataResult;
1176
1187
  declare function stopStreamTracks(stream: MediaStream, only?: "audio" | "video" | false): void;
1177
1188
  declare function replaceTracksInStream(stream: MediaStream, newStream: MediaStream, only: "audio" | "video" | false): MediaStreamTrack[];
1178
- declare function getStream(constraintOpt: any, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
1189
+ declare function getStream(constraintOpt: GetConstraintsOptions, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
1179
1190
  declare function hasGetDisplayMedia(): boolean;
1180
- declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: string): Promise<MediaStream>;
1181
- declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): any;
1191
+ declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: "detail" | "motion" | "text"): Promise<MediaStream>;
1192
+ declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): Record<MediaDeviceKind, {
1193
+ removed: Record<string, MediaDeviceInfo>;
1194
+ added: Record<string, MediaDeviceInfo>;
1195
+ changed: Record<string, MediaDeviceInfo>;
1196
+ }>;
1182
1197
  declare function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVideoId, currentSpeakerId, }: {
1183
1198
  oldDevices: MediaDeviceInfo[];
1184
1199
  newDevices: MediaDeviceInfo[];
1185
- currentAudioId?: string | undefined;
1186
- currentVideoId?: string | undefined;
1187
- currentSpeakerId?: string | undefined;
1200
+ currentAudioId?: string;
1201
+ currentVideoId?: string;
1202
+ currentSpeakerId?: string;
1188
1203
  }): GetUpdatedDevicesResult;
1189
1204
 
1190
1205
  interface P2PSessionOptions {
@@ -1614,7 +1629,7 @@ declare class VegaRtcManager implements RtcManager {
1614
1629
  _roomSessionId: any;
1615
1630
  _emitter: any;
1616
1631
  _serverSocket: ServerSocket;
1617
- _webrtcProvider: any;
1632
+ _webrtcProvider: WebRTCProvider;
1618
1633
  _features: any;
1619
1634
  _eventClaim?: any;
1620
1635
  _vegaConnection: VegaConnection | null;
@@ -1943,4 +1958,4 @@ declare const STREAM_TYPES: {
1943
1958
  };
1944
1959
 
1945
1960
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
1946
- export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
1961
+ export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetSettingsFromTrackResult, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.d.mts CHANGED
@@ -1057,7 +1057,9 @@ type SignalIceEndOfCandidatesMessage = {
1057
1057
  clientId: string;
1058
1058
  };
1059
1059
  interface WebRTCProvider {
1060
- getMediaConstraints: () => MediaStreamConstraints;
1060
+ getMediaConstraints: () => GetConstraintsOptions;
1061
+ browser?: string;
1062
+ version?: number;
1061
1063
  }
1062
1064
  type GetMediaConstraintsOptions = {
1063
1065
  disableAEC: boolean;
@@ -1065,27 +1067,32 @@ type GetMediaConstraintsOptions = {
1065
1067
  hd: boolean;
1066
1068
  lax: boolean;
1067
1069
  lowDataMode: boolean;
1070
+ audioWanted: boolean;
1071
+ videoWanted: boolean;
1068
1072
  preferredDeviceIds: {
1069
- audioId?: boolean | string | null | {
1070
- ideal?: string | null;
1071
- exact?: string | null;
1073
+ audioId?: {
1074
+ ideal?: string;
1075
+ exact?: string;
1072
1076
  };
1073
- videoId?: boolean | string | null | {
1074
- ideal?: string | null;
1075
- exact?: string | null;
1077
+ videoId?: {
1078
+ ideal?: string;
1079
+ exact?: string;
1076
1080
  };
1077
1081
  };
1078
1082
  resolution?: string;
1079
1083
  simulcast: boolean;
1080
1084
  widescreen: boolean;
1081
- usingAspectRatio16x9: boolean;
1082
1085
  };
1086
+ interface GetSettingsFromTrackResult extends Omit<MediaTrackSettings, "deviceId"> {
1087
+ deviceId?: string;
1088
+ label?: string;
1089
+ }
1083
1090
  type GetConstraintsOptions = {
1084
1091
  devices: MediaDeviceInfo[];
1085
1092
  audioId?: boolean | string;
1086
1093
  videoId?: boolean | string;
1087
1094
  type?: "ideal" | "exact";
1088
- options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds">;
1095
+ options: Omit<GetMediaConstraintsOptions, "preferredDeviceIds" | "audioWanted" | "videoWanted">;
1089
1096
  };
1090
1097
  type GetStreamOptions = {
1091
1098
  replaceStream?: MediaStream;
@@ -1096,8 +1103,13 @@ type GetStreamResult = {
1096
1103
  replacedTracks?: MediaStreamTrack[];
1097
1104
  stream: MediaStream;
1098
1105
  };
1106
+ interface BuildDeviceListOptions {
1107
+ devices: MediaDeviceInfo[];
1108
+ busyDeviceIds: string[];
1109
+ kind: MediaDeviceKind;
1110
+ }
1099
1111
  type UpdatedDeviceInfo = {
1100
- deviceId?: string | null;
1112
+ deviceId?: string;
1101
1113
  kind?: MediaDeviceKind;
1102
1114
  label?: string;
1103
1115
  };
@@ -1112,16 +1124,8 @@ type GetUpdatedDevicesResult = {
1112
1124
  removedDevices: UpdatedDevicesInfo;
1113
1125
  };
1114
1126
  type GetDeviceDataResult = {
1115
- audio: {
1116
- deviceId: string;
1117
- label: string;
1118
- kind: string;
1119
- };
1120
- video: {
1121
- deviceId: string;
1122
- label: string;
1123
- kind: string;
1124
- };
1127
+ audio: GetSettingsFromTrackResult;
1128
+ video: GetSettingsFromTrackResult;
1125
1129
  };
1126
1130
  type SignalIceServer = {
1127
1131
  credential: string;
@@ -1155,36 +1159,47 @@ interface RemoveScreenshareStreamOptions {
1155
1159
  requestedByClientId?: string;
1156
1160
  }
1157
1161
 
1158
- declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
1159
- declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
1162
+ declare function getMediaConstraints({ audioWanted, videoWanted, disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): MediaStreamConstraints;
1163
+ declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): MediaStreamConstraints;
1160
1164
 
1161
1165
  declare const isMobile: boolean;
1162
1166
  declare class NoDevicesError extends Error {
1163
1167
  constructor(...args: any);
1164
1168
  }
1165
1169
  declare function enumerate(): Promise<MediaDeviceInfo[]>;
1166
- declare function buildDeviceList({ busyDeviceIds, devices, kind }: any): any;
1167
- declare function getUserMedia(constraints: any): Promise<MediaStream>;
1170
+ declare function buildDeviceList({ busyDeviceIds, devices, kind }: BuildDeviceListOptions): {
1171
+ [x: string]: string | boolean;
1172
+ label: string;
1173
+ busy: boolean;
1174
+ }[] | {
1175
+ [x: string]: string;
1176
+ label: string;
1177
+ }[];
1178
+ declare function getUserMedia(constraints: MediaStreamConstraints): Promise<MediaStream>;
1168
1179
  declare function getDeviceData({ audioTrack, videoTrack, devices, stoppedVideoTrack, lastAudioId, lastVideoId, }: {
1169
- audioTrack?: MediaStreamTrack | null;
1170
- videoTrack?: MediaStreamTrack | null;
1180
+ audioTrack?: MediaStreamTrack;
1181
+ videoTrack?: MediaStreamTrack;
1171
1182
  devices: MediaDeviceInfo[];
1172
- stoppedVideoTrack?: boolean;
1183
+ stoppedVideoTrack?: MediaStreamTrack;
1173
1184
  lastAudioId?: string | undefined;
1174
1185
  lastVideoId?: string | undefined;
1175
1186
  }): GetDeviceDataResult;
1176
1187
  declare function stopStreamTracks(stream: MediaStream, only?: "audio" | "video" | false): void;
1177
1188
  declare function replaceTracksInStream(stream: MediaStream, newStream: MediaStream, only: "audio" | "video" | false): MediaStreamTrack[];
1178
- declare function getStream(constraintOpt: any, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
1189
+ declare function getStream(constraintOpt: GetConstraintsOptions, { replaceStream, fallback }?: GetStreamOptions): Promise<GetStreamResult>;
1179
1190
  declare function hasGetDisplayMedia(): boolean;
1180
- declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: string): Promise<MediaStream>;
1181
- declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): any;
1191
+ declare function getDisplayMedia(constraints?: DisplayMediaStreamOptions, contentHint?: "detail" | "motion" | "text"): Promise<MediaStream>;
1192
+ declare function compareLocalDevices(before: MediaDeviceInfo[], after: MediaDeviceInfo[]): Record<MediaDeviceKind, {
1193
+ removed: Record<string, MediaDeviceInfo>;
1194
+ added: Record<string, MediaDeviceInfo>;
1195
+ changed: Record<string, MediaDeviceInfo>;
1196
+ }>;
1182
1197
  declare function getUpdatedDevices({ oldDevices, newDevices, currentAudioId, currentVideoId, currentSpeakerId, }: {
1183
1198
  oldDevices: MediaDeviceInfo[];
1184
1199
  newDevices: MediaDeviceInfo[];
1185
- currentAudioId?: string | undefined;
1186
- currentVideoId?: string | undefined;
1187
- currentSpeakerId?: string | undefined;
1200
+ currentAudioId?: string;
1201
+ currentVideoId?: string;
1202
+ currentSpeakerId?: string;
1188
1203
  }): GetUpdatedDevicesResult;
1189
1204
 
1190
1205
  interface P2PSessionOptions {
@@ -1614,7 +1629,7 @@ declare class VegaRtcManager implements RtcManager {
1614
1629
  _roomSessionId: any;
1615
1630
  _emitter: any;
1616
1631
  _serverSocket: ServerSocket;
1617
- _webrtcProvider: any;
1632
+ _webrtcProvider: WebRTCProvider;
1618
1633
  _features: any;
1619
1634
  _eventClaim?: any;
1620
1635
  _vegaConnection: VegaConnection | null;
@@ -1943,4 +1958,4 @@ declare const STREAM_TYPES: {
1943
1958
  };
1944
1959
 
1945
1960
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
1946
- export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
1961
+ export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetSettingsFromTrackResult, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };