@voltkit-rtc/client 0.6.1 → 0.7.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 (64) hide show
  1. package/CHANGELOG.md +109 -2
  2. package/README.md +236 -11
  3. package/dist/cjs/broadcast.d.ts.map +1 -1
  4. package/dist/cjs/broadcast.js +16 -7
  5. package/dist/cjs/broadcast.js.map +1 -1
  6. package/dist/cjs/chat.d.ts +11 -9
  7. package/dist/cjs/chat.d.ts.map +1 -1
  8. package/dist/cjs/chat.js +56 -19
  9. package/dist/cjs/chat.js.map +1 -1
  10. package/dist/cjs/errors.d.ts +571 -0
  11. package/dist/cjs/errors.d.ts.map +1 -0
  12. package/dist/cjs/errors.js +155 -0
  13. package/dist/cjs/errors.js.map +1 -0
  14. package/dist/cjs/index.d.ts +320 -16
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js +728 -123
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/media-permissions.d.ts +101 -0
  19. package/dist/cjs/media-permissions.d.ts.map +1 -0
  20. package/dist/cjs/media-permissions.js +166 -0
  21. package/dist/cjs/media-permissions.js.map +1 -0
  22. package/dist/cjs/network.d.ts +80 -0
  23. package/dist/cjs/network.d.ts.map +1 -0
  24. package/dist/cjs/network.js +190 -0
  25. package/dist/cjs/network.js.map +1 -0
  26. package/dist/cjs/token.d.ts +17 -0
  27. package/dist/cjs/token.d.ts.map +1 -0
  28. package/dist/cjs/token.js +36 -0
  29. package/dist/cjs/token.js.map +1 -0
  30. package/dist/esm/broadcast.d.ts.map +1 -1
  31. package/dist/esm/broadcast.js +16 -7
  32. package/dist/esm/broadcast.js.map +1 -1
  33. package/dist/esm/chat.d.ts +11 -9
  34. package/dist/esm/chat.d.ts.map +1 -1
  35. package/dist/esm/chat.js +56 -19
  36. package/dist/esm/chat.js.map +1 -1
  37. package/dist/esm/errors.d.ts +571 -0
  38. package/dist/esm/errors.d.ts.map +1 -0
  39. package/dist/esm/errors.js +149 -0
  40. package/dist/esm/errors.js.map +1 -0
  41. package/dist/esm/index.d.ts +320 -16
  42. package/dist/esm/index.d.ts.map +1 -1
  43. package/dist/esm/index.js +707 -114
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/media-permissions.d.ts +101 -0
  46. package/dist/esm/media-permissions.d.ts.map +1 -0
  47. package/dist/esm/media-permissions.js +160 -0
  48. package/dist/esm/media-permissions.js.map +1 -0
  49. package/dist/esm/network.d.ts +80 -0
  50. package/dist/esm/network.d.ts.map +1 -0
  51. package/dist/esm/network.js +183 -0
  52. package/dist/esm/network.js.map +1 -0
  53. package/dist/esm/token.d.ts +17 -0
  54. package/dist/esm/token.d.ts.map +1 -0
  55. package/dist/esm/token.js +31 -0
  56. package/dist/esm/token.js.map +1 -0
  57. package/package.json +1 -1
  58. package/src/broadcast.ts +16 -7
  59. package/src/chat.ts +44 -18
  60. package/src/errors.ts +162 -0
  61. package/src/index.ts +842 -114
  62. package/src/media-permissions.ts +220 -0
  63. package/src/network.ts +212 -0
  64. package/src/token.ts +31 -0
@@ -9,6 +9,8 @@ import { type RecordingOptions, type RecordingFile } from './recording.js';
9
9
  import { type types as ms } from 'mediasoup-client';
10
10
  type RtpCapabilities = ms.RtpCapabilities;
11
11
  import type { ChatEvents, ChatMessage, ChatState, SendMessageOptions } from './chat.js';
12
+ import { type AudioQuality, type JoinBilling, type JoinMedia, type MediaPermissions } from './media-permissions.js';
13
+ import { type NetworkQuality } from './network.js';
12
14
  import { type CodecPreference } from './device.js';
13
15
  import { type MusicInput, type MusicOptions, type TrackSource } from './music.js';
14
16
  import { type ScreenMode, type ReceiveQuality, type VideoLayer, type LayerCount, type VideoPolicy, type VideoQuality } from './quality.js';
@@ -20,6 +22,13 @@ export { AudioMixer, MusicSource } from './music.js';
20
22
  export type { MusicInput, MusicOptions, TrackSource } from './music.js';
21
23
  export type { BroadcastEvents, BroadcastStartOptions, BroadcastState } from './broadcast.js';
22
24
  export { ChatClient, ChatRpcError } from './chat.js';
25
+ export { RpcError, ERROR_CODES, errorInfo, isTerminalError } from './errors.js';
26
+ export type { ErrorCode, ErrorInfo, ErrorOrigin } from './errors.js';
27
+ export { AUDIO_QUALITIES, AUDIO_SETTINGS, DEFAULT_MEDIA_PERMISSIONS, resolvePermissions } from './media-permissions.js';
28
+ export type { AudioQuality, BillingMode, JoinBilling, JoinMedia, MediaPermissions, MediaProfile } from './media-permissions.js';
29
+ export { NETWORK_QUALITY_INTERVAL_MS, NETWORK_QUALITY_LEVELS, networkLevel } from './network.js';
30
+ export type { NetworkQuality, NetworkQualityLevel } from './network.js';
31
+ export { TOKEN_EXPIRING_LEAD_MS, tokenExpiresAt } from './token.js';
23
32
  export { allowedQuality, layerBitrate, videoEncodings, VIDEO_QUALITIES } from './quality.js';
24
33
  export type { LayerCount, VideoEncoding, VideoPolicy, VideoQuality, VideoLayer, ReceiveQuality, ScreenMode } from './quality.js';
25
34
  export type { CodecPreference } from './device.js';
@@ -33,6 +42,52 @@ export interface UsageLimitNotice {
33
42
  /** When the session will be ended, in ms since the epoch. */
34
43
  endsAt: number;
35
44
  }
45
+ /**
46
+ * Wallet billing: what the project may still spend covers less than the
47
+ * grace period at the current burn, or (`cleared: true`) a recharge or a
48
+ * lower burn lifted it back above it.
49
+ */
50
+ export interface WalletLowNotice {
51
+ /** Seconds the funds cover at the current burn; -1 on a cleared notice when nothing limits them. */
52
+ remainingSeconds: number;
53
+ /** True once the warning is over: hide the banner, and the `usageLimit` countdown sent beside it is cancelled. */
54
+ cleared?: boolean;
55
+ }
56
+ /** The token this client would reconnect with lapses soon, and nobody has refreshed it. */
57
+ export interface TokenExpiringNotice {
58
+ /** When it expires, in ms since the epoch. */
59
+ expiresAt: number;
60
+ secondsLeft: number;
61
+ }
62
+ /** Where a session stands, in the order a session goes through them. `closed` is final; the `closed` event says why. */
63
+ export declare const CONNECTION_STATES: readonly ["idle", "connecting", "connected", "reconnecting", "closed"];
64
+ export type ConnectionState = (typeof CONNECTION_STATES)[number];
65
+ export type ClosedReason = 'replaced' | 'kicked' | 'room-closed' | 'gave-up' | 'left';
66
+ /** A slot changed hands, went away, came back, was locked or was freed. */
67
+ export interface ClaimChange {
68
+ key: string;
69
+ /** Null when the slot is now free or blocked. */
70
+ identity: string | null;
71
+ state: 'held' | 'away' | 'free' | 'blocked';
72
+ /** `claimed`, `moved`, `released`, `disconnected`, `reconnected`, `expired`, `blocked` or `unblocked`. */
73
+ reason: string;
74
+ }
75
+ /** A track this client is receiving. */
76
+ export interface RemoteTrack {
77
+ producerId: string;
78
+ identity: string;
79
+ kind: 'audio' | 'video';
80
+ source: TrackSource;
81
+ track: MediaStreamTrack;
82
+ /** Its publisher has it switched off (or a moderator does). */
83
+ paused: boolean;
84
+ }
85
+ /** What this client publishes, as `localMediaChanged` reports it. */
86
+ export interface LocalMediaState {
87
+ micEnabled: boolean;
88
+ camEnabled: boolean;
89
+ musicEnabled: boolean;
90
+ }
36
91
  export interface JoinResult {
37
92
  roomId: string;
38
93
  identity: string;
@@ -54,8 +109,23 @@ export interface JoinResult {
54
109
  * on a publisher's incoming bitrate. Absent from older servers: 1080p.
55
110
  */
56
111
  video?: VideoPolicy;
112
+ /**
113
+ * The project's media settings, the modes they allow and the fan-out
114
+ * limits. Absent from older servers; `mediaPermissions` resolves either.
115
+ */
116
+ media?: JoinMedia;
117
+ /** How this session is billed. Absent from older servers. */
118
+ billing?: JoinBilling;
57
119
  }
58
120
  export interface PublishOptions {
121
+ /**
122
+ * The microphone: `'std'` (the default) is mono Opus up to 64 kbps, billed
123
+ * as standard audio; `'hd'` is stereo Opus up to 128 kbps, billed as HD
124
+ * audio. HD in a project limited to standard audio sends standard and warns
125
+ * on `error` with `audio-quality-not-allowed`. Change it live with
126
+ * `setAudioQuality`. Music (`publishMusic`) is not affected.
127
+ */
128
+ audioQuality?: AudioQuality;
59
129
  /** 30 by default. Only the top layer uses 60; capture at 60 too. */
60
130
  frameRate?: 30 | 60;
61
131
  /**
@@ -99,6 +169,21 @@ export interface ScreenPublishOptions {
99
169
  /** An existing screen stream; otherwise capture is requested from this user gesture. */
100
170
  stream?: MediaStream;
101
171
  }
172
+ /**
173
+ * The handlers mediasoup-client can make its Device with. `ReactNative106` is
174
+ * reserved for future native hosts (react-native-webrtc); nothing published
175
+ * uses it yet.
176
+ */
177
+ export type DeviceHandlerName = 'Chrome111' | 'Chrome74' | 'Firefox120' | 'Safari12' | 'ReactNative106';
178
+ /** `new StreamClient(wsUrl, token, options)`. Everything here is optional; a browser needs none of it. */
179
+ export interface ClientOptions {
180
+ /**
181
+ * The mediasoup-client handler to make the Device with, instead of detecting
182
+ * the browser from its user agent. Leave it unset in browsers; it is
183
+ * reserved for future native hosts, which have no user agent to detect.
184
+ */
185
+ handlerName?: DeviceHandlerName;
186
+ }
102
187
  export interface SlotClaim {
103
188
  key: string;
104
189
  identity: string;
@@ -131,6 +216,11 @@ export interface RemoteProducer {
131
216
  export interface ClientEvents extends ChatEvents {
132
217
  connected: () => void;
133
218
  disconnected: (reason: string) => void;
219
+ /** idle → connecting → connected ⇄ reconnecting → closed. Read it any time as `connectionState`. */
220
+ connectionStateChanged: (e: {
221
+ state: ConnectionState;
222
+ previous: ConnectionState;
223
+ }) => void;
134
224
  joined: (result: JoinResult) => void;
135
225
  track: (info: {
136
226
  identity: string;
@@ -162,6 +252,11 @@ export interface ClientEvents extends ChatEvents {
162
252
  kind?: 'audio' | 'video' | '';
163
253
  paused: boolean;
164
254
  }) => void;
255
+ /** Someone's display metadata changed (their own `setMetadata`). */
256
+ participantUpdated: (e: {
257
+ identity: string;
258
+ metadata: unknown;
259
+ }) => void;
165
260
  roleChanged: (e: {
166
261
  identity: string;
167
262
  role: Role;
@@ -182,6 +277,17 @@ export interface ClientEvents extends ChatEvents {
182
277
  kind?: 'audio' | 'video' | '';
183
278
  paused: boolean;
184
279
  }) => void;
280
+ /**
281
+ * A slot changed. **Draw `away` as taken (greyed), never as free**: the
282
+ * holder's connection dropped and the slot is kept for them. `info.claims`
283
+ * and `info.blockedSlots` are kept current from these.
284
+ */
285
+ claimChanged: (e: ClaimChange) => void;
286
+ /** Room metadata changed (a moderator's `setRoomMetadata`); persisted, so `info.metadata` is kept current too. */
287
+ roomMetadataChanged: (e: {
288
+ metadata: unknown;
289
+ by?: string;
290
+ }) => void;
185
291
  mustReconnect: (e: {
186
292
  reason: string;
187
293
  token?: string;
@@ -201,12 +307,13 @@ export interface ClientEvents extends ChatEvents {
201
307
  screenShareEnded: (e: {
202
308
  reason: 'stopped' | 'track-ended';
203
309
  }) => void;
310
+ /**
311
+ * A failure, or a warning that changes nothing else: an `RpcError` whose
312
+ * `code` is in `ERROR_CODES` (`frame-rate-fallback`,
313
+ * `audio-quality-not-allowed`, ...). Switch on the code.
314
+ */
204
315
  error: (err: Error) => void;
205
- localMediaChanged: (state: {
206
- micEnabled: boolean;
207
- camEnabled: boolean;
208
- musicEnabled: boolean;
209
- }) => void;
316
+ localMediaChanged: (state: LocalMediaState) => void;
210
317
  /** The local stream was replaced, typically after reacquiring devices on a reconnect. */
211
318
  localStreamChanged: (stream: MediaStream | null) => void;
212
319
  /** Media stopped arriving but the connection is intact -- the publisher is reconnecting. */
@@ -214,13 +321,33 @@ export interface ClientEvents extends ChatEvents {
214
321
  reason: string;
215
322
  }) => void;
216
323
  /** The session ended and will not recover. Nothing further will be emitted. */
217
- closed: (reason: 'replaced' | 'kicked' | 'room-closed' | 'gave-up' | 'left') => void;
324
+ closed: (reason: ClosedReason) => void;
218
325
  /**
219
326
  * The account behind this session ran out of minutes or reached a usage
220
327
  * limit. The session ends at `endsAt` (after `graceSeconds`) unless the
221
328
  * account is topped up first -- tell the user, and stop asking them to wait.
222
329
  */
223
330
  usageLimit: (e: UsageLimitNotice) => void;
331
+ /**
332
+ * Wallet billing: the funds this project may spend cover less than the
333
+ * grace period at the current burn, repeated while it lasts; the room closes
334
+ * when they reach zero unless the wallet is recharged. A notice with
335
+ * `cleared: true` ends the warning (and the `usageLimit` countdown beside it).
336
+ */
337
+ walletLow: (e: WalletLowNotice) => void;
338
+ /**
339
+ * The token this client would reconnect with expires in about a minute and
340
+ * the server has not refreshed it (it stops when the account may no longer
341
+ * be used, or the socket is down). Mint a new one on your backend and hand it
342
+ * over with `updateToken`.
343
+ */
344
+ tokenExpiring: (e: TokenExpiringNotice) => void;
345
+ /**
346
+ * Round trip, packet loss and available bandwidth to the media server, about
347
+ * every 3 s while listened to and media is flowing, with a level for the UI
348
+ * (thresholds in the README). Sampled only while someone listens.
349
+ */
350
+ networkQuality: (e: NetworkQuality) => void;
224
351
  /**
225
352
  * Your camera video is being held back by this device (`cpu`: too busy to
226
353
  * encode it), by the upload (`bandwidth`), or by something else (`other`);
@@ -231,13 +358,11 @@ export interface ClientEvents extends ChatEvents {
231
358
  */
232
359
  videoLimited: (e: VideoLimitedEvent) => void;
233
360
  }
234
- /** An error returned by the server, carrying its machine-readable code. */
235
- export declare class RpcError extends Error {
236
- readonly code: string;
237
- constructor(code: string, message: string);
238
- }
361
+ /** The names of every event `StreamClient.on` accepts. */
362
+ export declare const CLIENT_EVENTS: readonly (keyof ClientEvents)[];
239
363
  export declare class StreamClient {
240
364
  private readonly wsUrl;
365
+ private readonly options;
241
366
  private ws;
242
367
  private device;
243
368
  private sendTransport;
@@ -281,7 +406,15 @@ export declare class StreamClient {
281
406
  * the full picture.
282
407
  */
283
408
  private readonly preferredLayers;
409
+ /** endRoom() calls waiting for their reply; a roomClosed that arrives first answers them. */
410
+ private readonly endRoomWaiters;
284
411
  private closedByUs;
412
+ /**
413
+ * Bumped when the session ends for good: close(), or finish(). A connect()
414
+ * under way when it did -- the app's, or a reconnect's -- sees the change
415
+ * after its next await and stops, so a closed session never comes back.
416
+ */
417
+ private lifecycle;
285
418
  private reconnecting;
286
419
  private reconnectAttempt;
287
420
  /** Set once a connect() has joined and set up. Only such a session is reconnected. */
@@ -294,15 +427,49 @@ export declare class StreamClient {
294
427
  private readonly sendStatsBaseline;
295
428
  private readonly recvStatsBaseline;
296
429
  private readonly limitWatch;
297
- constructor(wsUrl: string, token: string);
430
+ /** Where the session stands; see connectionStateChanged. */
431
+ private state;
432
+ /** When the token held for reconnects expires (unix ms), and the timer that warns before it does. */
433
+ private tokenExpiry;
434
+ private tokenTimer;
435
+ /** Whose each received track is and whether it is switched off, by producerId. */
436
+ private readonly remoteInfo;
437
+ /** Videos left unconsumed at the fan-out limit, oldest first; consumed as others end. */
438
+ private readonly skippedVideos;
439
+ /** Producers whose video this client receives, or is about to: the fan-out count. */
440
+ private readonly videoSlots;
441
+ /** The quality the microphone producer was made with. */
442
+ private micQuality;
443
+ private micQueue;
444
+ private audioCapReported;
445
+ private sizeCapReported;
446
+ private readonly networkWatch;
447
+ constructor(wsUrl: string, token: string, options?: ClientOptions);
298
448
  on<K extends keyof ClientEvents>(event: K, fn: ClientEvents[K]): () => void;
449
+ /** Where the session stands: idle, connecting, connected, reconnecting or closed. */
450
+ get connectionState(): ConnectionState;
451
+ private setState;
452
+ /** Over for good: the state, then the event that says why. */
453
+ private finish;
454
+ private stopTimers;
299
455
  private listenerCount;
300
456
  private emit;
301
457
  connect(): Promise<JoinResult>;
302
- /** A new mediasoup Device for each join. Its own method so tests, which have no WebRTC, can stand one in. */
458
+ /**
459
+ * A new mediasoup Device for each join: the handler named in the options, or
460
+ * the one detected from the browser. Its own method so tests, which have no
461
+ * WebRTC, can stand one in.
462
+ */
303
463
  private createDevice;
304
464
  private openSocket;
305
465
  private detachSocket;
466
+ /**
467
+ * A reconnect that ends the session lets go of its socket. A refused join
468
+ * leaves that socket open (connect() keeps it once a session has joined),
469
+ * and the session would otherwise report closed with it still attached and
470
+ * still sending.
471
+ */
472
+ private releaseSocket;
306
473
  /**
307
474
  * Reconnection is mandatory, not optional: nodes get drained, relays die and
308
475
  * promotions move you to a different node. Always re-ask the orchestrator
@@ -311,12 +478,56 @@ export declare class StreamClient {
311
478
  private scheduleReconnect;
312
479
  close(): void;
313
480
  private teardownMedia;
314
- /** Everything currently known about the room, for rendering. */
481
+ /**
482
+ * Everything currently known about the room, for rendering: the join
483
+ * result, kept current -- participants, roles, hands, mutes, display
484
+ * metadata, slots and room metadata follow the events.
485
+ */
315
486
  get info(): JoinResult | null;
487
+ /** Who is in the room now, this client included; kept current from the roster events. */
488
+ get participants(): ParticipantInfo[];
489
+ /** Every track this client is receiving now. */
490
+ get remoteTracks(): RemoteTrack[];
491
+ /**
492
+ * What this project lets this client publish: from the join result's
493
+ * `media` (servers with wallet billing), else its `video` policy, else
494
+ * everything before a join. Offer only these in your UI; the SDK refuses
495
+ * or caps anything else with the server's own codes.
496
+ */
497
+ get mediaPermissions(): MediaPermissions;
498
+ /** How this session is billed: `legacy` (minutes) or `wallet`; null before a join or on older servers. */
499
+ get billingMode(): 'legacy' | 'wallet' | null;
500
+ /**
501
+ * Hand the session a newer room token, minted by your backend for the same
502
+ * room and identity (`POST /v1/rooms/{roomId}/tokens`), typically on
503
+ * `tokenExpiring`. On a live connection the server checks it like a join
504
+ * token (`bad-token`, or `token-mismatch` for another room or identity; the
505
+ * session then keeps its token); otherwise it is kept for the next join,
506
+ * which checks it there. Resolves to when it expires (unix ms), when known.
507
+ */
508
+ updateToken(token: string): Promise<{
509
+ expiresAt: number | null;
510
+ }>;
511
+ /** The token reconnects use from now on, with its expiry (read from the token when not given). */
512
+ private setToken;
513
+ /**
514
+ * Warn TOKEN_EXPIRING_LEAD_MS before the token held for reconnects
515
+ * expires. Every new token -- the server's refresh, a promotion's, the
516
+ * app's -- reschedules it, so it fires only when nobody refreshed it.
517
+ */
518
+ private scheduleTokenExpiring;
519
+ /** networkQuality sampling runs while someone listens and the session is connected. */
520
+ private syncNetworkWatch;
521
+ /** Each live media transport's statistics, keyed by transport so a new one starts fresh. */
522
+ private transportStats;
316
523
  private rpc;
317
524
  private failAllPending;
318
525
  private onMessage;
319
526
  private onEvent;
527
+ /** Change the roster the join result holds; a new array each time, so a renderer sees the change. */
528
+ private updateRoster;
529
+ /** Keep the join result's slots current: claims held or away, and the moderator's locks. */
530
+ private applyClaim;
320
531
  private ensureSendTransport;
321
532
  private createSendTransport;
322
533
  private ensureRecvTransport;
@@ -334,10 +545,42 @@ export declare class StreamClient {
334
545
  * kept for a reconnect's republish.
335
546
  */
336
547
  publish(stream: MediaStream, constraints?: MediaStreamConstraints, options?: PublishOptions): Promise<void>;
548
+ private publishStream;
549
+ /**
550
+ * The microphone's audio quality: what it is being sent at while
551
+ * published, else what the next publish will use, after the project's limit.
552
+ */
553
+ get audioQuality(): AudioQuality;
554
+ /**
555
+ * Switch the microphone between standard (mono, up to 64 kbps) and HD
556
+ * (stereo, up to 128 kbps) while live. The codec settings are fixed per
557
+ * producer, so the microphone's producer is replaced: listeners hear a gap
558
+ * of a fraction of a second, and a microphone that is off stays off. Rejects
559
+ * with `audio-quality-not-allowed` when the project allows standard audio
560
+ * only. Resolves to the quality in use.
561
+ */
562
+ setAudioQuality(quality: AudioQuality): Promise<AudioQuality>;
563
+ private micProducer;
564
+ private micTask;
565
+ /** The audio quality to send: the request, capped to the project's, with the cap reported once. */
566
+ private audioQualityFor;
567
+ /**
568
+ * Produce the microphone at the audio quality in force. A track handed over
569
+ * switched off (or paused before a reconnect or a quality change) starts
570
+ * paused, on both ends.
571
+ */
572
+ private produceMic;
573
+ /** Close the microphone producer and produce its track again at the quality now in force. */
574
+ private reproduceMic;
337
575
  /** What this project may publish. Known once joined; 1080p before that. */
338
576
  get videoPolicy(): VideoPolicy;
339
- /** The quality video is being sent at, after the project's limit. */
577
+ /**
578
+ * The quality video is being sent at, after the project's limit: at 60 fps
579
+ * the largest size the project allows at 60, otherwise its 30 fps maximum.
580
+ */
340
581
  get videoQuality(): VideoQuality;
582
+ /** The camera's frame rate: what it is being sent at while published, else 30 until a publish decides. */
583
+ get videoFrameRate(): 30 | 60;
341
584
  /**
342
585
  * Change the video quality while publishing. The camera's producer is
343
586
  * replaced, so viewers see a brief pause while the new one starts. Resolves
@@ -345,8 +588,21 @@ export declare class StreamClient {
345
588
  * that size (for example with `track.applyConstraints`) first.
346
589
  */
347
590
  setVideoQuality(quality: VideoQuality): Promise<VideoQuality>;
348
- /** Change the camera frame rate without stopping screen, microphone or music. */
591
+ /**
592
+ * Change the camera frame rate without stopping screen, microphone or music.
593
+ * 60 where the project allows none stays at 30 and warns on `error` with
594
+ * `frame-rate-not-allowed`, without touching the camera; a camera or device
595
+ * that cannot keep 60 up falls back with `frame-rate-fallback`. Resolves to
596
+ * the frame rate used.
597
+ */
349
598
  setVideoFrameRate(frameRate: 30 | 60): Promise<30 | 60>;
599
+ /** Whether this project allows any 60 fps mode. */
600
+ private allows60;
601
+ /**
602
+ * The quality to send at a frame rate. A request above what 60 fps allows
603
+ * is sent at the largest size it does allow, and said so once.
604
+ */
605
+ private cameraQuality;
350
606
  /**
351
607
  * Send a different video track from now on: a canvas with effects drawn on
352
608
  * it, the raw camera again, another camera. When the new track needs the
@@ -452,6 +708,13 @@ export declare class StreamClient {
452
708
  private releaseScreen;
453
709
  private stopScreen;
454
710
  private restoreScreen;
711
+ /**
712
+ * 60 only when asked for, allowed by the project, captured at 50 or more and
713
+ * not fallen back from. The project's refusal and the camera's are reported
714
+ * apart, each once: `frame-rate-not-allowed` is the server's own code for a
715
+ * 60 fps producer the project does not allow, `frame-rate-fallback` means
716
+ * the camera or device cannot provide it.
717
+ */
455
718
  private frameRateFor;
456
719
  private sampleCamera;
457
720
  /**
@@ -477,6 +740,9 @@ export declare class StreamClient {
477
740
  stopMusic(): Promise<void>;
478
741
  private emitLocalMedia;
479
742
  private consume;
743
+ /** The oldest videos left waiting at the fan-out limit take the slots that opened. */
744
+ private consumeSkipped;
745
+ private consumeNow;
480
746
  /** True once this client has at least one live producer. */
481
747
  get publishing(): boolean;
482
748
  get micEnabled(): boolean;
@@ -508,8 +774,46 @@ export declare class StreamClient {
508
774
  forceMute(identity: string, kind?: 'audio' | 'video', paused?: boolean): Promise<unknown>;
509
775
  promote(identity: string, role: Role): Promise<unknown>;
510
776
  kick(identity: string, reason?: string): Promise<unknown>;
777
+ /**
778
+ * End the room for everyone. The server tells the room it has closed
779
+ * before it replies, and that roomClosed closes this session, so the reply
780
+ * may never be read: roomClosed is then the answer, and endRoom() resolves
781
+ * as the reply would have, with `{ ok: true }`. It still fails when the
782
+ * server refuses, or the connection drops with neither.
783
+ */
511
784
  endRoom(): Promise<unknown>;
512
785
  getRoomState(): Promise<unknown>;
786
+ /**
787
+ * Take a slot, or (moderators) grant one by naming `identity`. One claim
788
+ * per identity: a second moves you. Refused with `slot-taken` when someone
789
+ * holds it (away included) and `slot-blocked` when a moderator locked it.
790
+ * Claim first, then promote: if the slot has gone, nothing has happened yet.
791
+ */
792
+ claim(key: string, identity?: string): Promise<void>;
793
+ /** Give up a slot. Moderators may release anyone's. */
794
+ release(key: string): Promise<void>;
795
+ /**
796
+ * Lock a slot so nobody may claim it. Moderators only. Refused with
797
+ * `slot-occupied` while someone holds it: taking a seat from a person using
798
+ * it is two deliberate acts, not a side effect of one tap.
799
+ */
800
+ blockSlot(key: string): Promise<void>;
801
+ /** Unlock a slot. Moderators only. */
802
+ unblockSlot(key: string): Promise<void>;
803
+ /** Replace your own display metadata; the room hears it as participantUpdated. */
804
+ setMetadata(metadata: Record<string, unknown>): Promise<void>;
805
+ /**
806
+ * Change room-scoped metadata. Moderators only, and persisted, so a client
807
+ * joining later reads it from `info.metadata`. Merges one key deep by
808
+ * default (a null value deletes its key); `replace` swaps the whole object.
809
+ * `requireFree` names slots that must be unheld for the change to apply,
810
+ * checked and applied together: the refusal (`slot-occupied`) names the
811
+ * offending keys in `RpcError.data.slots`. Resolves to the metadata now.
812
+ */
813
+ setRoomMetadata(metadata: Record<string, unknown>, options?: {
814
+ replace?: boolean;
815
+ requireFree?: string[];
816
+ }): Promise<unknown>;
513
817
  sendMessage(text: string, opts?: SendMessageOptions): Promise<{
514
818
  id: string;
515
819
  ts: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}