livekit-client 2.22.2 → 2.22.4

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 (245) hide show
  1. package/README.md +35 -0
  2. package/dist/livekit-client.e2ee.worker.js +1 -1
  3. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  4. package/dist/livekit-client.e2ee.worker.mjs +488 -438
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +954 -301
  7. package/dist/livekit-client.esm.mjs.map +1 -1
  8. package/dist/livekit-client.fm.worker.js +1 -1
  9. package/dist/livekit-client.fm.worker.js.map +1 -1
  10. package/dist/livekit-client.fm.worker.mjs +10 -2
  11. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  12. package/dist/livekit-client.umd.js +1 -1
  13. package/dist/livekit-client.umd.js.map +1 -1
  14. package/dist/src/api/SignalClient.d.ts +4 -2
  15. package/dist/src/api/SignalClient.d.ts.map +1 -1
  16. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  17. package/dist/src/api/utils.d.ts +1 -0
  18. package/dist/src/api/utils.d.ts.map +1 -1
  19. package/dist/src/e2ee/E2eeManager.d.ts +26 -0
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/types.d.ts +15 -1
  22. package/dist/src/e2ee/types.d.ts.map +1 -1
  23. package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
  24. package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
  25. package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts.map +1 -0
  26. package/dist/src/e2ee/worker/FrameCryptor.d.ts +1 -18
  27. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  28. package/dist/src/logger.d.ts +4 -0
  29. package/dist/src/logger.d.ts.map +1 -1
  30. package/dist/src/options.d.ts +14 -0
  31. package/dist/src/options.d.ts.map +1 -1
  32. package/dist/src/room/PCTransport.d.ts +78 -7
  33. package/dist/src/room/PCTransport.d.ts.map +1 -1
  34. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  35. package/dist/src/room/RTCEngine.d.ts +9 -0
  36. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  37. package/dist/src/room/Room.d.ts +1 -1
  38. package/dist/src/room/Room.d.ts.map +1 -1
  39. package/dist/src/room/defaults.d.ts.map +1 -1
  40. package/dist/src/room/errors.d.ts +18 -0
  41. package/dist/src/room/errors.d.ts.map +1 -1
  42. package/dist/src/room/events.d.ts +3 -2
  43. package/dist/src/room/events.d.ts.map +1 -1
  44. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  45. package/dist/src/room/participant/publishUtils.d.ts +16 -0
  46. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  47. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  48. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  49. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  50. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  51. package/dist/src/room/track/options.d.ts +1 -1
  52. package/dist/src/room/track/utils.d.ts +13 -0
  53. package/dist/src/room/track/utils.d.ts.map +1 -1
  54. package/dist/src/room/utils.d.ts +66 -0
  55. package/dist/src/room/utils.d.ts.map +1 -1
  56. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  57. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  58. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  59. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  60. package/dist/ts4.2/api/WebSocketStream.d.ts +33 -33
  61. package/dist/ts4.2/api/utils.d.ts +9 -8
  62. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  63. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  64. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  65. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  66. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  67. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  68. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  69. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  70. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  71. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  72. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -85
  73. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  74. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  75. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  76. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  77. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  78. package/dist/ts4.2/e2ee/types.d.ts +231 -217
  79. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  80. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  81. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
  82. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -226
  83. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  84. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  85. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +28 -28
  86. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  87. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  88. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  89. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  90. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  91. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  92. package/dist/ts4.2/index.d.ts +76 -76
  93. package/dist/ts4.2/logger.d.ts +66 -62
  94. package/dist/ts4.2/options.d.ts +163 -149
  95. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  96. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  97. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  98. package/dist/ts4.2/room/PCTransport.d.ts +246 -175
  99. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  100. package/dist/ts4.2/room/RTCEngine.d.ts +269 -261
  101. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  102. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  103. package/dist/ts4.2/room/Room.d.ts +354 -365
  104. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  105. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +62 -62
  106. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +94 -95
  107. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  108. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  109. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  110. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  111. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  112. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  113. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  114. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  115. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  116. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  117. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  118. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  119. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  120. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  121. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  122. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  123. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  124. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  125. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  126. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  127. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  128. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  129. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  130. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  131. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  132. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  133. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  134. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  135. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  136. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  137. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  138. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  139. package/dist/ts4.2/room/debounce.d.ts +11 -11
  140. package/dist/ts4.2/room/defaults.d.ts +9 -9
  141. package/dist/ts4.2/room/errors.d.ts +180 -162
  142. package/dist/ts4.2/room/events.d.ts +638 -637
  143. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +287 -287
  144. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  145. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  146. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  147. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -37
  148. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  149. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  150. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  151. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  152. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  153. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  154. package/dist/ts4.2/room/stats.d.ts +71 -71
  155. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  156. package/dist/ts4.2/room/timers.d.ts +12 -12
  157. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  158. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  159. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  160. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  161. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +39 -42
  162. package/dist/ts4.2/room/track/LocalTrack.d.ts +125 -125
  163. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  164. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +102 -93
  165. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +55 -55
  166. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  167. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  168. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  169. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  170. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  171. package/dist/ts4.2/room/track/create.d.ts +25 -25
  172. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  173. package/dist/ts4.2/room/track/options.d.ts +403 -403
  174. package/dist/ts4.2/room/track/processor/types.d.ts +31 -31
  175. package/dist/ts4.2/room/track/record.d.ts +13 -13
  176. package/dist/ts4.2/room/track/types.d.ts +28 -28
  177. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  178. package/dist/ts4.2/room/types.d.ts +127 -127
  179. package/dist/ts4.2/room/utils.d.ts +246 -180
  180. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  181. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  182. package/dist/ts4.2/test/mocks.d.ts +12 -12
  183. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  184. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  185. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  186. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  187. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  188. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  189. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  190. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  191. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  192. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  193. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  194. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  195. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  196. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  197. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  198. package/dist/ts4.2/version.d.ts +15 -15
  199. package/package.json +5 -4
  200. package/src/api/SignalClient.e2e.test.ts +1 -3
  201. package/src/api/SignalClient.test.ts +160 -10
  202. package/src/api/SignalClient.ts +75 -54
  203. package/src/api/WebSocketStream.ts +3 -8
  204. package/src/api/utils.ts +10 -0
  205. package/src/e2ee/E2eeManager.test.ts +196 -0
  206. package/src/e2ee/E2eeManager.ts +114 -19
  207. package/src/e2ee/types.ts +19 -1
  208. package/src/e2ee/worker/DataCryptor.ts +2 -1
  209. package/src/e2ee/worker/ErrorRateLimiter.test.ts +53 -0
  210. package/src/e2ee/worker/ErrorRateLimiter.ts +52 -0
  211. package/src/e2ee/worker/FrameCryptor.ts +20 -70
  212. package/src/e2ee/worker/e2ee.worker.ts +34 -11
  213. package/src/logger.ts +22 -0
  214. package/src/options.ts +16 -0
  215. package/src/room/PCTransport.test.ts +183 -7
  216. package/src/room/PCTransport.ts +197 -36
  217. package/src/room/PCTransportManager.ts +3 -1
  218. package/src/room/RTCEngine.test.ts +84 -0
  219. package/src/room/RTCEngine.ts +52 -12
  220. package/src/room/Room.test.ts +32 -6
  221. package/src/room/Room.ts +27 -7
  222. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +16 -20
  223. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +5 -5
  224. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  225. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  226. package/src/room/defaults.ts +1 -0
  227. package/src/room/errors.test.ts +36 -0
  228. package/src/room/errors.ts +27 -0
  229. package/src/room/events.ts +2 -1
  230. package/src/room/participant/LocalParticipant.ts +30 -14
  231. package/src/room/participant/publishUtils.test.ts +133 -0
  232. package/src/room/participant/publishUtils.ts +54 -38
  233. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  234. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  235. package/src/room/track/LocalTrack.ts +18 -7
  236. package/src/room/track/LocalVideoTrack.ts +25 -8
  237. package/src/room/track/RemoteAudioTrack.ts +3 -3
  238. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  239. package/src/room/track/RemoteVideoTrack.ts +29 -3
  240. package/src/room/track/options.ts +1 -1
  241. package/src/room/track/utils.test.ts +201 -2
  242. package/src/room/track/utils.ts +88 -0
  243. package/src/room/utils.test.ts +211 -0
  244. package/src/room/utils.ts +129 -0
  245. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,180 +1,246 @@
1
- import { ChatMessage as ChatMessageModel, ClientInfo, ClientInfo_Capability, DisconnectReason, Transcription as TranscriptionModel } from '@livekit/protocol';
2
- import type { Throws } from '@livekit/throws-transformer/throws';
3
- import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
4
- import TypedPromise from '../utils/TypedPromise';
5
- import type { BrowserDetails } from '../utils/browserParser';
6
- import type { ConnectionError } from './errors';
7
- import type LocalParticipant from './participant/LocalParticipant';
8
- import type Participant from './participant/Participant';
9
- import type RemoteParticipant from './participant/RemoteParticipant';
10
- import type LocalAudioTrack from './track/LocalAudioTrack';
11
- import type LocalTrack from './track/LocalTrack';
12
- import type LocalTrackPublication from './track/LocalTrackPublication';
13
- import type LocalVideoTrack from './track/LocalVideoTrack';
14
- import type RemoteAudioTrack from './track/RemoteAudioTrack';
15
- import type RemoteTrack from './track/RemoteTrack';
16
- import type RemoteTrackPublication from './track/RemoteTrackPublication';
17
- import type RemoteVideoTrack from './track/RemoteVideoTrack';
18
- import { Track } from './track/Track';
19
- import type { TrackPublication } from './track/TrackPublication';
20
- import type { AudioCodec, VideoCodec } from './track/options';
21
- import type { ChatMessage, TranscriptionSegment } from './types';
22
- export declare const ddExtensionURI = "https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";
23
- export declare function unpackStreamId(packed: string): string[];
24
- export declare function sleep(duration: number): TypedPromise<void, never>;
25
- /** @internal */
26
- export declare function supportsTransceiver(): boolean;
27
- /** @internal */
28
- export declare function supportsAddTrack(): boolean;
29
- export declare function supportsAdaptiveStream(): boolean;
30
- export declare function supportsDynacast(): boolean;
31
- export declare function supportsAV1(): boolean;
32
- export declare function supportsVP9(): boolean;
33
- export declare function supportsH265(): boolean;
34
- export declare function isSVCCodec(codec?: string): boolean;
35
- /**
36
- * Opts `transceiver` into negotiating the AV1 dependency descriptor, reporting whether it will be.
37
- *
38
- * Chrome only offers the extension on transceivers that can send, so one we create to receive on
39
- * never negotiates it — and Chrome 152 stopped decoding AV1 that arrives without it: frames get
40
- * assembled, none ever decode, and the receiver asks for a keyframe forever. Asking through the
41
- * transceiver rather than munging the extension into the SDP leaves the browser owning the
42
- * extension id, which is what keeps that id consistent across the bundle and across
43
- * renegotiations.
44
- *
45
- * A no-op where the browser offers no such control, or does not know the extension at all.
46
- * @internal
47
- */
48
- export declare function negotiateDependencyDescriptor(transceiver: RTCRtpTransceiver): boolean;
49
- export declare function supportsSetSinkId(elm?: HTMLMediaElement): boolean;
50
- /**
51
- * Checks whether or not setting an audio output via {@link Room#setActiveDevice}
52
- * is supported for the current browser.
53
- */
54
- export declare function supportsAudioOutputSelection(): boolean;
55
- export declare function isBrowserSupported(): boolean;
56
- export declare function isFireFox(): boolean;
57
- export declare function isChromiumBased(): boolean;
58
- export declare function isScriptTransformSupportedForWorker(): boolean;
59
- export declare function isSafari(): boolean;
60
- export declare function isSafariBased(): boolean;
61
- export declare function isSafari17Based(): boolean;
62
- export declare function isSafariSvcApi(browser?: BrowserDetails): boolean;
63
- export declare function isMobile(): boolean;
64
- export declare function isE2EESimulcastSupported(): boolean | undefined;
65
- export declare function isWeb(): boolean;
66
- export declare function isReactNative(): boolean;
67
- export declare function isCloud(serverUrl: URL): boolean;
68
- export declare function extractProjectFromUrl(serverUrl: URL): string | null;
69
- export declare function getReactNativeOs(): string | undefined;
70
- export declare function getDevicePixelRatio(): number;
71
- /**
72
- * @param v1 - The first version string to compare.
73
- * @param v2 - The second version string to compare.
74
- * @returns A number indicating the order of the versions:
75
- * - 1 if v1 is greater than v2
76
- * - -1 if v1 is less than v2
77
- * - 0 if v1 and v2 are equal
78
- */
79
- export declare function compareVersions(v1: string, v2: string): number;
80
- export declare const getResizeObserver: () => ResizeObserver;
81
- export declare const getIntersectionObserver: () => IntersectionObserver;
82
- export interface ObservableMediaElement extends HTMLMediaElement {
83
- handleResize: (entry: ResizeObserverEntry) => void;
84
- handleVisibilityChanged: (entry: IntersectionObserverEntry) => void;
85
- }
86
- export declare function getClientInfo(capabilities?: ClientInfo_Capability[]): ClientInfo;
87
- export declare function getEmptyVideoStreamTrack(): MediaStreamTrack;
88
- export declare function createDummyVideoStreamTrack(width?: number, height?: number, enabled?: boolean, paintContent?: boolean): MediaStreamTrack;
89
- export declare function getEmptyAudioStreamTrack(): MediaStreamTrack;
90
- export declare function getStereoAudioStreamTrack(): MediaStreamTrack;
91
- /** An object that represents a serialized version of a `new Promise((resolve, reject) => {})`
92
- * constructor. Wait for a promise resolution with `await future.promise` and explicitly resolve or
93
- * reject the inner promise with `future.resolve(...)` or `future.reject(...)`.
94
- */
95
- export declare class Future<T, E extends Error> {
96
- promise: Promise<Throws<T, E>>;
97
- resolve?: (arg: T) => void;
98
- reject?: (e: E) => void;
99
- onFinally?: () => void;
100
- get isResolved(): boolean;
101
- private _isResolved;
102
- constructor(futureBase?: (resolve: (arg: T) => void, reject: (e: E) => void) => void, onFinally?: () => void);
103
- }
104
- export type AudioAnalyserOptions = {
105
- /**
106
- * If set to true, the analyser will use a cloned version of the underlying mediastreamtrack, which won't be impacted by muting the track.
107
- * Useful for local tracks when implementing things like "seems like you're muted, but trying to speak".
108
- * Defaults to false
109
- */
110
- cloneTrack?: boolean;
111
- /**
112
- * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize
113
- */
114
- fftSize?: number;
115
- /**
116
- * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/smoothingTimeConstant
117
- */
118
- smoothingTimeConstant?: number;
119
- /**
120
- * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/minDecibels
121
- */
122
- minDecibels?: number;
123
- /**
124
- * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/maxDecibels
125
- */
126
- maxDecibels?: number;
127
- };
128
- /**
129
- * Creates and returns an analyser web audio node that is attached to the provided track.
130
- * Additionally returns a convenience method `calculateVolume` to perform instant volume readings on that track.
131
- * Call the returned `cleanup` function to close the audioContext that has been created for the instance of this helper
132
- */
133
- export declare function createAudioAnalyser(track: LocalAudioTrack | RemoteAudioTrack, options?: AudioAnalyserOptions): {
134
- calculateVolume: () => number;
135
- analyser: AnalyserNode;
136
- cleanup: () => Promise<void>;
137
- };
138
- export declare function isAudioCodec(maybeCodec: string): maybeCodec is AudioCodec;
139
- export declare function isVideoCodec(maybeCodec: string): maybeCodec is VideoCodec;
140
- export declare function unwrapConstraint(constraint: ConstrainDOMString): string;
141
- export declare function unwrapConstraint(constraint: ConstrainULong): number;
142
- export declare function toWebsocketUrl(url: string): string;
143
- export declare function toHttpUrl(url: string): string;
144
- export declare function extractTranscriptionSegments(transcription: TranscriptionModel, firstReceivedTimesMap: Map<string, number>): TranscriptionSegment[];
145
- export declare function extractChatMessage(msg: ChatMessageModel): ChatMessage;
146
- export declare function getDisconnectReasonFromConnectionError(e: ConnectionError): DisconnectReason;
147
- /** convert bigints to numbers preserving undefined values */
148
- export declare function bigIntToNumber<T extends BigInt | undefined>(value: T): T extends BigInt ? number : undefined;
149
- /** convert numbers to bigints preserving undefined values */
150
- export declare function numberToBigInt<T extends number | undefined>(value: T): T extends number ? bigint : undefined;
151
- export declare function isLocalTrack(track: Track | MediaStreamTrack | undefined): track is LocalTrack;
152
- export declare function isAudioTrack(track: Track | undefined): track is LocalAudioTrack | RemoteAudioTrack;
153
- export declare function isVideoTrack(track: Track | undefined): track is LocalVideoTrack | RemoteVideoTrack;
154
- export declare function isLocalVideoTrack(track: Track | MediaStreamTrack | undefined): track is LocalVideoTrack;
155
- export declare function isLocalAudioTrack(track: Track | MediaStreamTrack | undefined): track is LocalAudioTrack;
156
- export declare function isRemoteTrack(track: Track | undefined): track is RemoteTrack;
157
- export declare function isRemotePub(pub: TrackPublication | undefined): pub is RemoteTrackPublication;
158
- export declare function isLocalPub(pub: TrackPublication | undefined): pub is LocalTrackPublication;
159
- export declare function isRemoteVideoTrack(track: Track | undefined): track is RemoteVideoTrack;
160
- export declare function isLocalParticipant(p: Participant): p is LocalParticipant;
161
- export declare function isRemoteParticipant(p: Participant): p is RemoteParticipant;
162
- export declare function splitUtf8(s: string, n: number): NonSharedUint8Array[];
163
- /** Wraps a byte array in a `ReadableStream` that yields it as a single chunk and then closes. */
164
- export declare function readableFromBytes(bytes: NonSharedUint8Array): ReadableStream<NonSharedUint8Array>;
165
- /**
166
- * Re-chunks a byte stream into pieces of exactly `chunkSize` bytes (the final piece may be
167
- * smaller), coalescing or splitting the source's pieces as needed. Memory use is bounded to roughly
168
- * `chunkSize` plus one source read, so it never buffers the whole stream — used to pack
169
- * `CompressionStream`/`file.stream()` output into MTU-sized data-stream chunks.
170
- */
171
- export declare function readBytesInChunks(source: ReadableStream<NonSharedUint8Array>, chunkSize: number): AsyncGenerator<NonSharedUint8Array>;
172
- /** Encodes a byte array as a base64 string (suitable for embedding binary data in a string field). */
173
- export declare function encodeBase64(bytes: Uint8Array): string;
174
- /** Decodes a base64 string (as produced by {@link encodeBase64}) back into a byte array. */
175
- export declare function decodeBase64(base64: string): Uint8Array;
176
- export declare function extractMaxAgeFromRequestHeaders(headers: Headers): number | undefined;
177
- export declare function isCompressionStreamSupported(): boolean;
178
- export declare function isPublisherOfferWithJoinSupported(): boolean;
179
- export declare function extractTrackSid(mediaTrack: MediaStreamTrack, stream: MediaStream): Track.SID | undefined;
180
- //# sourceMappingURL=utils.d.ts.map
1
+ import { ChatMessage as ChatMessageModel, ClientInfo, ClientInfo_Capability, DisconnectReason, Transcription as TranscriptionModel } from '@livekit/protocol';
2
+ import type { Throws } from '@livekit/throws-transformer/throws';
3
+ import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
4
+ import TypedPromise from '../utils/TypedPromise';
5
+ import type { BrowserDetails } from '../utils/browserParser';
6
+ import type { ConnectionError } from './errors';
7
+ import type LocalParticipant from './participant/LocalParticipant';
8
+ import type Participant from './participant/Participant';
9
+ import type RemoteParticipant from './participant/RemoteParticipant';
10
+ import type LocalAudioTrack from './track/LocalAudioTrack';
11
+ import type LocalTrack from './track/LocalTrack';
12
+ import type LocalTrackPublication from './track/LocalTrackPublication';
13
+ import type LocalVideoTrack from './track/LocalVideoTrack';
14
+ import type RemoteAudioTrack from './track/RemoteAudioTrack';
15
+ import type RemoteTrack from './track/RemoteTrack';
16
+ import type RemoteTrackPublication from './track/RemoteTrackPublication';
17
+ import type RemoteVideoTrack from './track/RemoteVideoTrack';
18
+ import { Track } from './track/Track';
19
+ import type { TrackPublication } from './track/TrackPublication';
20
+ import type { AudioCodec, VideoCodec } from './track/options';
21
+ import type { ChatMessage, TranscriptionSegment } from './types';
22
+ export declare const ddExtensionURI = "https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";
23
+ export declare function unpackStreamId(packed: string): string[];
24
+ export declare function sleep(duration: number): TypedPromise<void, never>;
25
+ /** @internal */
26
+ export declare function supportsTransceiver(): boolean;
27
+ /** @internal */
28
+ export declare function supportsAddTrack(): boolean;
29
+ export declare function supportsAdaptiveStream(): boolean;
30
+ export declare function supportsDynacast(): boolean;
31
+ export declare function supportsAV1(): boolean;
32
+ export declare function supportsVP9(): boolean;
33
+ export declare function supportsH265(): boolean;
34
+ export declare function isSVCCodec(codec?: string): boolean;
35
+ /**
36
+ * Opts `transceiver` into negotiating the AV1 dependency descriptor, reporting whether it will be.
37
+ *
38
+ * Chrome only offers the extension on transceivers that can send, so one we create to receive on
39
+ * never negotiates it — and Chrome 152 stopped decoding AV1 that arrives without it: frames get
40
+ * assembled, none ever decode, and the receiver asks for a keyframe forever. Asking through the
41
+ * transceiver rather than munging the extension into the SDP leaves the browser owning the
42
+ * extension id, which is what keeps that id consistent across the bundle and across
43
+ * renegotiations.
44
+ *
45
+ * A no-op where the browser offers no such control, or does not know the extension at all.
46
+ * @internal
47
+ */
48
+ export declare function negotiateDependencyDescriptor(transceiver: RTCRtpTransceiver): boolean;
49
+ /**
50
+ * VP9 and AV1 are published as SVC (a single RTP stream carrying every spatial layer)
51
+ * by default. They can instead be published as real, rid based simulcast — one
52
+ * independent stream per rid, each carrying a single spatial layer — when the caller
53
+ * opts in with `simulcast: true` and a single spatial layer scalability mode (`L1Tx`).
54
+ *
55
+ * The SFU has to be told about this: without an explicit
56
+ * `SimulcastCodec.videoLayerMode` it assumes `MULTIPLE_SPATIAL_LAYERS_PER_STREAM` for
57
+ * any SVC capable codec.
58
+ */
59
+ export declare function isSVCSimulcast(codec?: string, options?: {
60
+ simulcast?: boolean;
61
+ scalabilityMode?: string;
62
+ }): boolean;
63
+ /**
64
+ * Whether the browser reads multiple encodings on an SVC capable codec as *legacy SVC*
65
+ * rather than as real simulcast.
66
+ *
67
+ * Before Chrome M113, supplying more than one encoding for VP9/AV1 selected SVC mode;
68
+ * only from M113 does libwebrtc treat such encodings as simulcast, and only when each
69
+ * one carries its own scalabilityMode. Safari (and anything WebKit based, i. e. every
70
+ * browser on iOS) still uses the old interpretation, as does React Native's libwebrtc.
71
+ * Announced at https://groups.google.com/g/discuss-webrtc/c/-QQ3pxrl-fw
72
+ *
73
+ * Where this is true the rids would not exist on the wire, so VP9/AV1 must be published
74
+ * as SVC no matter what the caller asked for.
75
+ */
76
+ export declare function usesLegacySVCEncodings(): boolean;
77
+ /**
78
+ * Whether the connected server honours `SimulcastCodec.videoLayerMode`, i. e. whether
79
+ * VP9/AV1 can be published as rid based simulcast. An unknown version is treated as
80
+ * unsupported so the publish falls back to SVC.
81
+ */
82
+ export declare function isSVCSimulcastSupportedByServer(serverVersion?: string): boolean;
83
+ export declare function supportsSetSinkId(elm?: HTMLMediaElement): boolean;
84
+ /**
85
+ * Checks whether or not setting an audio output via {@link Room#setActiveDevice}
86
+ * is supported for the current browser.
87
+ */
88
+ export declare function supportsAudioOutputSelection(): boolean;
89
+ export declare function isBrowserSupported(): boolean;
90
+ export declare function isFireFox(): boolean;
91
+ export declare function isChromiumBased(): boolean;
92
+ export declare function isScriptTransformSupportedForWorker(): boolean;
93
+ export declare function isSafari(): boolean;
94
+ export declare function isSafariBased(): boolean;
95
+ /**
96
+ * iPadOS has sent the desktop Macintosh user agent by default since iPadOS 13, so `getBrowser()`
97
+ * reports `os: 'macOS'` there and every `os === 'iOS'` check misses it. macOS Safari implements no
98
+ * touch events at all (`TouchEvent` undefined, `maxTouchPoints` 0) regardless of any touchscreen
99
+ * attached, so touch capability separates the two. Measured on an iPad 6 / iPadOS 17
100
+ * (`maxTouchPoints` 5) against macOS Safari 26.4 (`maxTouchPoints` 0).
101
+ *
102
+ * Deliberately a separate helper rather than a fix in `browserParser`: iPadOS spoofs the Mac
103
+ * version too, so reporting `os: 'iOS'` there would leave `osVersion` at `10.15.7` and silently
104
+ * break {@link isSafari17Based} and {@link isSafariSvcApi}, which compare it.
105
+ */
106
+ export declare function isIPadOS(): boolean;
107
+ /**
108
+ * iPhone, iPad and iOS-hosted browsers — everything running the Apple camera capture pipeline,
109
+ * including iPads that present themselves as a Mac.
110
+ */
111
+ export declare function isAppleMobile(): boolean;
112
+ export declare function isSafari17Based(): boolean;
113
+ export declare function isSafariSvcApi(browser?: BrowserDetails): boolean;
114
+ export declare function isMobile(): boolean;
115
+ export declare function isE2EESimulcastSupported(): boolean | undefined;
116
+ export declare function isWeb(): boolean;
117
+ export declare function isReactNative(): boolean;
118
+ export declare function isCloud(serverUrl: URL): boolean;
119
+ export declare function extractProjectFromUrl(serverUrl: URL): string | null;
120
+ export declare function getReactNativeOs(): string | undefined;
121
+ export declare function getDevicePixelRatio(): number;
122
+ /**
123
+ * @param v1 - The first version string to compare.
124
+ * @param v2 - The second version string to compare.
125
+ * @returns A number indicating the order of the versions:
126
+ * - 1 if v1 is greater than v2
127
+ * - -1 if v1 is less than v2
128
+ * - 0 if v1 and v2 are equal
129
+ */
130
+ export declare function compareVersions(v1: string, v2: string): number;
131
+ export declare const getResizeObserver: () => ResizeObserver;
132
+ export declare const getIntersectionObserver: () => IntersectionObserver;
133
+ export interface ObservableMediaElement extends HTMLMediaElement {
134
+ handleResize: (entry: ResizeObserverEntry) => void;
135
+ handleVisibilityChanged: (entry: IntersectionObserverEntry) => void;
136
+ }
137
+ export declare function getClientInfo(capabilities?: ClientInfo_Capability[]): ClientInfo;
138
+ export declare function getEmptyVideoStreamTrack(): MediaStreamTrack;
139
+ export declare function createDummyVideoStreamTrack(width?: number, height?: number, enabled?: boolean, paintContent?: boolean): MediaStreamTrack;
140
+ export declare function getEmptyAudioStreamTrack(): MediaStreamTrack;
141
+ export declare function getStereoAudioStreamTrack(): MediaStreamTrack;
142
+ /** An object that represents a serialized version of a `new Promise((resolve, reject) => {})`
143
+ * constructor. Wait for a promise resolution with `await future.promise` and explicitly resolve or
144
+ * reject the inner promise with `future.resolve(...)` or `future.reject(...)`.
145
+ */
146
+ export declare class Future<T, E extends Error> {
147
+ promise: Promise<Throws<T, E>>;
148
+ resolve?: (arg: T) => void;
149
+ reject?: (e: E) => void;
150
+ onFinally?: () => void;
151
+ get isResolved(): boolean;
152
+ private _isResolved;
153
+ constructor(futureBase?: (resolve: (arg: T) => void, reject: (e: E) => void) => void, onFinally?: () => void);
154
+ }
155
+ export type AudioAnalyserOptions = {
156
+ /**
157
+ * If set to true, the analyser will use a cloned version of the underlying mediastreamtrack, which won't be impacted by muting the track.
158
+ * Useful for local tracks when implementing things like "seems like you're muted, but trying to speak".
159
+ * Defaults to false
160
+ */
161
+ cloneTrack?: boolean;
162
+ /**
163
+ * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/fftSize
164
+ */
165
+ fftSize?: number;
166
+ /**
167
+ * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/smoothingTimeConstant
168
+ */
169
+ smoothingTimeConstant?: number;
170
+ /**
171
+ * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/minDecibels
172
+ */
173
+ minDecibels?: number;
174
+ /**
175
+ * see https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode/maxDecibels
176
+ */
177
+ maxDecibels?: number;
178
+ };
179
+ /**
180
+ * Creates and returns an analyser web audio node that is attached to the provided track.
181
+ * Additionally returns a convenience method `calculateVolume` to perform instant volume readings on that track.
182
+ * Call the returned `cleanup` function to close the audioContext that has been created for the instance of this helper
183
+ */
184
+ export declare function createAudioAnalyser(track: LocalAudioTrack | RemoteAudioTrack, options?: AudioAnalyserOptions): {
185
+ calculateVolume: () => number;
186
+ analyser: AnalyserNode;
187
+ cleanup: () => Promise<void>;
188
+ };
189
+ export declare function isAudioCodec(maybeCodec: string): maybeCodec is AudioCodec;
190
+ export declare function isVideoCodec(maybeCodec: string): maybeCodec is VideoCodec;
191
+ export declare function unwrapConstraint(constraint: ConstrainDOMString): string;
192
+ export declare function unwrapConstraint(constraint: ConstrainULong): number;
193
+ export declare function toWebsocketUrl(url: string): string;
194
+ export declare function toHttpUrl(url: string): string;
195
+ export declare function extractTranscriptionSegments(transcription: TranscriptionModel, firstReceivedTimesMap: Map<string, number>): TranscriptionSegment[];
196
+ export declare function extractChatMessage(msg: ChatMessageModel): ChatMessage;
197
+ export declare function getDisconnectReasonFromConnectionError(e: ConnectionError): DisconnectReason;
198
+ /** convert bigints to numbers preserving undefined values */
199
+ export declare function bigIntToNumber<T extends BigInt | undefined>(value: T): T extends BigInt ? number : undefined;
200
+ /** convert numbers to bigints preserving undefined values */
201
+ export declare function numberToBigInt<T extends number | undefined>(value: T): T extends number ? bigint : undefined;
202
+ export declare function isLocalTrack(track: Track | MediaStreamTrack | undefined): track is LocalTrack;
203
+ export declare function isAudioTrack(track: Track | undefined): track is LocalAudioTrack | RemoteAudioTrack;
204
+ export declare function isVideoTrack(track: Track | undefined): track is LocalVideoTrack | RemoteVideoTrack;
205
+ export declare function isLocalVideoTrack(track: Track | MediaStreamTrack | undefined): track is LocalVideoTrack;
206
+ export declare function isLocalAudioTrack(track: Track | MediaStreamTrack | undefined): track is LocalAudioTrack;
207
+ export declare function isRemoteTrack(track: Track | undefined): track is RemoteTrack;
208
+ export declare function isRemotePub(pub: TrackPublication | undefined): pub is RemoteTrackPublication;
209
+ export declare function isLocalPub(pub: TrackPublication | undefined): pub is LocalTrackPublication;
210
+ export declare function isRemoteVideoTrack(track: Track | undefined): track is RemoteVideoTrack;
211
+ export declare function isLocalParticipant(p: Participant): p is LocalParticipant;
212
+ export declare function isRemoteParticipant(p: Participant): p is RemoteParticipant;
213
+ export declare function splitUtf8(s: string, n: number): NonSharedUint8Array[];
214
+ /** Wraps a byte array in a `ReadableStream` that yields it as a single chunk and then closes. */
215
+ export declare function readableFromBytes(bytes: NonSharedUint8Array): ReadableStream<NonSharedUint8Array>;
216
+ /**
217
+ * Re-chunks a byte stream into pieces of exactly `chunkSize` bytes (the final piece may be
218
+ * smaller), coalescing or splitting the source's pieces as needed. Memory use is bounded to roughly
219
+ * `chunkSize` plus one source read, so it never buffers the whole stream — used to pack
220
+ * `CompressionStream`/`file.stream()` output into MTU-sized data-stream chunks.
221
+ */
222
+ export declare function readBytesInChunks(source: ReadableStream<NonSharedUint8Array>, chunkSize: number): AsyncGenerator<NonSharedUint8Array>;
223
+ /** Encodes a byte array as a base64 string (suitable for embedding binary data in a string field). */
224
+ export declare function encodeBase64(bytes: Uint8Array): string;
225
+ /** Decodes a base64 string (as produced by {@link encodeBase64}) back into a byte array. */
226
+ export declare function decodeBase64(base64: string): Uint8Array;
227
+ export declare function extractMaxAgeFromRequestHeaders(headers: Headers): number | undefined;
228
+ export declare function isCompressionStreamSupported(): boolean;
229
+ /**
230
+ * Whether this runtime can compress AND decompress the `deflate-raw` format, which is a stricter
231
+ * requirement than {@link isCompressionStreamSupported}: Chromium 80-102 included
232
+ * `CompressionStream` supporting only `gzip` / `deflate`, and `deflate-raw` was added in Chromium
233
+ * 103 (Firefox 113, Safari 16.4).
234
+ */
235
+ export declare function isDeflateRawCompressionSupported(): boolean;
236
+ /**
237
+ * Clears the memoized {@link isDeflateRawCompressionSupported} probe result. A runtime doesn't
238
+ * gain or lose compression formats while it is running, so this only exists for tests that swap
239
+ * the global `CompressionStream` / `DecompressionStream`.
240
+ *
241
+ * @internal
242
+ */
243
+ export declare function resetDeflateRawCompressionSupportCache(): void;
244
+ export declare function isPublisherOfferWithJoinSupported(): boolean;
245
+ export declare function extractTrackSid(mediaTrack: MediaStreamTrack, stream: MediaStream): Track.SID | undefined;
246
+ //# sourceMappingURL=utils.d.ts.map
@@ -1,26 +1,26 @@
1
- export default class MockMediaStreamTrack implements MediaStreamTrack {
2
- contentHint: string;
3
- enabled: boolean;
4
- id: string;
5
- kind: string;
6
- label: string;
7
- muted: boolean;
8
- onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
9
- onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
10
- onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
11
- readyState: MediaStreamTrackState;
12
- isolated: boolean;
13
- onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;
14
- applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
15
- clone(): MediaStreamTrack;
16
- getCapabilities(): MediaTrackCapabilities;
17
- getConstraints(): MediaTrackConstraints;
18
- getSettings(): MediaTrackSettings;
19
- stop(): void;
20
- addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
21
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
22
- removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
23
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
24
- dispatchEvent(event: Event): boolean;
25
- }
26
- //# sourceMappingURL=MockMediaStreamTrack.d.ts.map
1
+ export default class MockMediaStreamTrack implements MediaStreamTrack {
2
+ contentHint: string;
3
+ enabled: boolean;
4
+ id: string;
5
+ kind: string;
6
+ label: string;
7
+ muted: boolean;
8
+ onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
9
+ onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
10
+ onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
11
+ readyState: MediaStreamTrackState;
12
+ isolated: boolean;
13
+ onisolationchange: ((this: MediaStreamTrack, ev: Event) => any) | null;
14
+ applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
15
+ clone(): MediaStreamTrack;
16
+ getCapabilities(): MediaTrackCapabilities;
17
+ getConstraints(): MediaTrackConstraints;
18
+ getSettings(): MediaTrackSettings;
19
+ stop(): void;
20
+ addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
21
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
22
+ removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
23
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
24
+ dispatchEvent(event: Event): boolean;
25
+ }
26
+ //# sourceMappingURL=MockMediaStreamTrack.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Swaps the global `CompressionStream` / `DecompressionStream` away entirely, emulating a runtime
3
+ * that predates the compression streams api. Returns a function that restores them.
4
+ */
5
+ export declare function stubMissingCompressionStreams(): () => void;
6
+ /**
7
+ * Swaps in global `CompressionStream` / `DecompressionStream` constructors that reject the
8
+ * `deflate-raw` format the way Chromium 80-102 does (the api exists, but only `gzip` / `deflate`
9
+ * are supported). Returns a function that restores the real ones.
10
+ */
11
+ export declare function stubMissingDeflateRawSupport(): () => void;
12
+ //# sourceMappingURL=compressionStreamStubs.d.ts.map
@@ -1,12 +1,12 @@
1
- import type { MockedClass } from 'vitest';
2
- import { SignalClient } from '../api/SignalClient';
3
- import RTCEngine from '../room/RTCEngine';
4
- declare const mocks: {
5
- SignalClient: MockedClass<typeof SignalClient>;
6
- RTCEngine: MockedClass<typeof RTCEngine>;
7
- MockLocalVideoTrack: {
8
- stop: () => void;
9
- };
10
- };
11
- export default mocks;
12
- //# sourceMappingURL=mocks.d.ts.map
1
+ import type { MockedClass } from 'vitest';
2
+ import { SignalClient } from '../api/SignalClient';
3
+ import RTCEngine from '../room/RTCEngine';
4
+ declare const mocks: {
5
+ SignalClient: MockedClass<typeof SignalClient>;
6
+ RTCEngine: MockedClass<typeof RTCEngine>;
7
+ MockLocalVideoTrack: {
8
+ stop: () => void;
9
+ };
10
+ };
11
+ export default mocks;
12
+ //# sourceMappingURL=mocks.d.ts.map
@@ -1,12 +1,12 @@
1
- /**
2
- * Test helper: resolves `true` if `promise` is still pending after `ms`
3
- * (default: one macrotask), `false` if it has already settled — regardless of
4
- * whether it resolved or rejected.
5
- *
6
- * Use to assert that something has *not* happened yet (e.g. an onClose callback
7
- * that must stay silent), optionally within a timeout window. Preferable to
8
- * `Promise.race([p, Promise.resolve(sentinel)])` when the "not yet" needs to
9
- * hold for a duration rather than just the current microtask.
10
- */
11
- export declare function isPending(promise: Promise<unknown>, ms?: number): Promise<boolean>;
12
- //# sourceMappingURL=promiseState.d.ts.map
1
+ /**
2
+ * Test helper: resolves `true` if `promise` is still pending after `ms`
3
+ * (default: one macrotask), `false` if it has already settled — regardless of
4
+ * whether it resolved or rejected.
5
+ *
6
+ * Use to assert that something has *not* happened yet (e.g. an onClose callback
7
+ * that must stay silent), optionally within a timeout window. Preferable to
8
+ * `Promise.race([p, Promise.resolve(sentinel)])` when the "not yet" needs to
9
+ * hold for a duration rather than just the current microtask.
10
+ */
11
+ export declare function isPending(promise: Promise<unknown>, ms?: number): Promise<boolean>;
12
+ //# sourceMappingURL=promiseState.d.ts.map
@@ -1,26 +1,26 @@
1
- /**
2
- * Mint a LiveKit access token for the mock test-server (HS256, dev secret).
3
- *
4
- * The mock's signal behavior mode is selected via a participant attribute
5
- * under the reserved key `lk.mock` (dot notation, matching LiveKit's internal
6
- * attribute convention), whose value is the JSON control object
7
- * `{"signal":"<mode>"}` — mirroring the X-Lk-Mock header protocol. Attributes
8
- * are a standard AccessToken field (a string map), so a dedicated `lk-mock`
9
- * key coexists with any real metadata/attributes and needs no bespoke token
10
- * construction. The room name is just a room; it no longer encodes behavior.
11
- */
12
- export interface TokenOptions {
13
- /** Mock behavior mode (e.g. 'no_pong'); omitted → the mock defaults to 'happy'. */
14
- signal?: string;
15
- /** LeaveRequest action the leave modes should send (0=DISCONNECT,1=RESUME,2=RECONNECT). */
16
- leaveAction?: number;
17
- room?: string;
18
- identity?: string;
19
- apiKey?: string;
20
- secret?: string;
21
- ttlSeconds?: number;
22
- }
23
- export declare function createToken(opts?: TokenOptions): Promise<string>;
24
- /** A syntactically-valid token signed with the WRONG secret — for 401 tests. */
25
- export declare function createInvalidToken(): Promise<string>;
26
- //# sourceMappingURL=signalToken.d.ts.map
1
+ /**
2
+ * Mint a LiveKit access token for the mock test-server (HS256, dev secret).
3
+ *
4
+ * The mock's signal behavior mode is selected via a participant attribute
5
+ * under the reserved key `lk.mock` (dot notation, matching LiveKit's internal
6
+ * attribute convention), whose value is the JSON control object
7
+ * `{"signal":"<mode>"}` — mirroring the X-Lk-Mock header protocol. Attributes
8
+ * are a standard AccessToken field (a string map), so a dedicated `lk-mock`
9
+ * key coexists with any real metadata/attributes and needs no bespoke token
10
+ * construction. The room name is just a room; it no longer encodes behavior.
11
+ */
12
+ export interface TokenOptions {
13
+ /** Mock behavior mode (e.g. 'no_pong'); omitted → the mock defaults to 'happy'. */
14
+ signal?: string;
15
+ /** LeaveRequest action the leave modes should send (0=DISCONNECT,1=RESUME,2=RECONNECT). */
16
+ leaveAction?: number;
17
+ room?: string;
18
+ identity?: string;
19
+ apiKey?: string;
20
+ secret?: string;
21
+ ttlSeconds?: number;
22
+ }
23
+ export declare function createToken(opts?: TokenOptions): Promise<string>;
24
+ /** A syntactically-valid token signed with the WRONG secret — for 401 tests. */
25
+ export declare function createInvalidToken(): Promise<string>;
26
+ //# sourceMappingURL=signalToken.d.ts.map
@@ -1,2 +1,2 @@
1
- export type NonSharedUint8Array = ReturnType<typeof Uint8Array.from>;
2
- //# sourceMappingURL=non-shared-typed-arrays.d.ts.map
1
+ export type NonSharedUint8Array = ReturnType<typeof Uint8Array.from>;
2
+ //# sourceMappingURL=non-shared-typed-arrays.d.ts.map