livekit-client 2.22.3 → 2.23.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.
Files changed (272) 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 +71 -8
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +1746 -547
  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 +2 -1
  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 +1 -0
  17. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  18. package/dist/src/api/utils.d.ts +1 -1
  19. package/dist/src/api/utils.d.ts.map +1 -1
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  22. package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
  23. package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +2 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/options.d.ts +14 -0
  27. package/dist/src/options.d.ts.map +1 -1
  28. package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
  29. package/dist/src/room/PCTransport.d.ts +100 -7
  30. package/dist/src/room/PCTransport.d.ts.map +1 -1
  31. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  32. package/dist/src/room/RTCEngine.d.ts +16 -0
  33. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  34. package/dist/src/room/Room.d.ts +54 -1
  35. package/dist/src/room/Room.d.ts.map +1 -1
  36. package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
  37. package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
  38. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
  39. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
  40. package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
  41. package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
  42. package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
  43. package/dist/src/room/defaults.d.ts.map +1 -1
  44. package/dist/src/room/errors.d.ts +18 -0
  45. package/dist/src/room/errors.d.ts.map +1 -1
  46. package/dist/src/room/events.d.ts +3 -2
  47. package/dist/src/room/events.d.ts.map +1 -1
  48. package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
  49. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  50. package/dist/src/room/participant/Participant.d.ts +1 -1
  51. package/dist/src/room/participant/Participant.d.ts.map +1 -1
  52. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  53. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  54. package/dist/src/room/rpc/utils.d.ts.map +1 -1
  55. package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
  56. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  57. package/dist/src/room/track/LocalTrack.d.ts +18 -0
  58. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  59. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  60. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  61. package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
  62. package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
  63. package/dist/src/room/track/processor/types.d.ts +11 -0
  64. package/dist/src/room/track/processor/types.d.ts.map +1 -1
  65. package/dist/src/room/track/utils.d.ts +13 -0
  66. package/dist/src/room/track/utils.d.ts.map +1 -1
  67. package/dist/src/room/utils.d.ts +60 -1
  68. package/dist/src/room/utils.d.ts.map +1 -1
  69. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  70. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  71. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  72. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  73. package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
  74. package/dist/ts4.2/api/utils.d.ts +9 -9
  75. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  76. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  77. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  78. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  79. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  80. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  81. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  82. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  83. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  84. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  85. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
  86. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  87. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  88. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  89. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  90. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  91. package/dist/ts4.2/e2ee/types.d.ts +231 -231
  92. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  93. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  94. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
  95. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
  96. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  97. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  98. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
  99. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  100. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  101. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  102. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  103. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  104. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  105. package/dist/ts4.2/index.d.ts +76 -76
  106. package/dist/ts4.2/logger.d.ts +66 -66
  107. package/dist/ts4.2/options.d.ts +163 -149
  108. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  109. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  110. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  111. package/dist/ts4.2/room/PCTransport.d.ts +268 -175
  112. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  113. package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
  114. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  115. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  116. package/dist/ts4.2/room/Room.d.ts +407 -365
  117. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  118. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
  119. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
  120. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  121. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  122. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  123. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  124. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  125. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  126. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  127. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  128. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  129. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  130. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  131. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  132. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  133. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  134. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  135. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  136. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  137. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  138. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  139. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  140. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  141. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  142. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  143. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  144. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  145. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  146. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  147. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  148. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  149. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  150. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  151. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  152. package/dist/ts4.2/room/debounce.d.ts +11 -11
  153. package/dist/ts4.2/room/defaults.d.ts +9 -9
  154. package/dist/ts4.2/room/errors.d.ts +180 -162
  155. package/dist/ts4.2/room/events.d.ts +638 -637
  156. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
  157. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  158. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  159. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  160. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
  161. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  162. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  163. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  164. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  165. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  166. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  167. package/dist/ts4.2/room/stats.d.ts +71 -71
  168. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  169. package/dist/ts4.2/room/timers.d.ts +12 -12
  170. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  171. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  172. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  173. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  174. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
  175. package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
  176. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  177. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
  178. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
  179. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  180. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  181. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  182. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  183. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  184. package/dist/ts4.2/room/track/create.d.ts +25 -25
  185. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  186. package/dist/ts4.2/room/track/options.d.ts +403 -403
  187. package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
  188. package/dist/ts4.2/room/track/record.d.ts +13 -13
  189. package/dist/ts4.2/room/track/types.d.ts +28 -28
  190. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  191. package/dist/ts4.2/room/types.d.ts +127 -127
  192. package/dist/ts4.2/room/utils.d.ts +273 -214
  193. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  194. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  195. package/dist/ts4.2/test/mocks.d.ts +12 -12
  196. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  197. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  198. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  199. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  200. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  201. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  202. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  203. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  204. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  205. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  206. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  207. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  208. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  209. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  210. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  211. package/dist/ts4.2/version.d.ts +15 -15
  212. package/package.json +5 -4
  213. package/src/api/SignalClient.e2e.test.ts +1 -3
  214. package/src/api/SignalClient.test.ts +394 -10
  215. package/src/api/SignalClient.ts +132 -76
  216. package/src/api/WebSocketStream.test.ts +11 -0
  217. package/src/api/WebSocketStream.ts +22 -1
  218. package/src/api/utils.ts +1 -1
  219. package/src/e2ee/E2eeManager.test.ts +43 -0
  220. package/src/e2ee/E2eeManager.ts +6 -2
  221. package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
  222. package/src/e2ee/worker/FrameCryptor.ts +21 -4
  223. package/src/e2ee/worker/naluUtils.test.ts +123 -0
  224. package/src/e2ee/worker/naluUtils.ts +57 -2
  225. package/src/index.ts +2 -0
  226. package/src/options.ts +16 -0
  227. package/src/room/DefaultReconnectPolicy.test.ts +58 -0
  228. package/src/room/DefaultReconnectPolicy.ts +14 -2
  229. package/src/room/PCTransport.test.ts +327 -9
  230. package/src/room/PCTransport.ts +339 -36
  231. package/src/room/PCTransportManager.ts +3 -1
  232. package/src/room/RTCEngine.test.ts +318 -2
  233. package/src/room/RTCEngine.ts +126 -12
  234. package/src/room/Room.test.ts +148 -6
  235. package/src/room/Room.ts +312 -80
  236. package/src/room/data-channel/DataChannelManager.test.ts +24 -7
  237. package/src/room/data-channel/DataChannelManager.ts +43 -38
  238. package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
  239. package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
  240. package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
  241. package/src/room/data-channel/LossyDataChannel.ts +10 -1
  242. package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
  243. package/src/room/data-channel/ReliableDataChannel.ts +16 -5
  244. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
  245. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
  246. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  247. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  248. package/src/room/defaults.ts +1 -0
  249. package/src/room/errors.test.ts +36 -0
  250. package/src/room/errors.ts +27 -0
  251. package/src/room/events.ts +2 -1
  252. package/src/room/participant/LocalParticipant.test.ts +136 -1
  253. package/src/room/participant/LocalParticipant.ts +66 -17
  254. package/src/room/participant/Participant.ts +6 -3
  255. package/src/room/participant/publishUtils.ts +0 -19
  256. package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
  257. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  258. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  259. package/src/room/rpc/utils.test.ts +32 -0
  260. package/src/room/rpc/utils.ts +7 -0
  261. package/src/room/track/LocalAudioTrack.ts +101 -10
  262. package/src/room/track/LocalTrack.ts +87 -19
  263. package/src/room/track/LocalVideoTrack.ts +17 -3
  264. package/src/room/track/RemoteAudioTrack.ts +59 -14
  265. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  266. package/src/room/track/RemoteVideoTrack.ts +29 -3
  267. package/src/room/track/processor/types.ts +11 -0
  268. package/src/room/track/utils.test.ts +206 -2
  269. package/src/room/track/utils.ts +117 -5
  270. package/src/room/utils.test.ts +250 -0
  271. package/src/room/utils.ts +152 -19
  272. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,262 +1,277 @@
1
- import type { AddTrackRequest, ConnectionQualityUpdate, JoinResponse, RegionSettings, StreamStateUpdate, SubscriptionPermissionUpdate, SubscriptionResponse } from '@livekit/protocol';
2
- import { DataPacket, DataTrackSubscriberHandles, DisconnectReason, Encryption_Type, ParticipantInfo, PublishDataTrackResponse, ReconnectReason, RequestResponse, Room as RoomModel, RoomMovedResponse, ServerInfo, SpeakerInfo, SubscribedQualityUpdate, TrackInfo, TrackUnpublishedResponse, Transcription, UnpublishDataTrackResponse } from '@livekit/protocol';
3
- import type TypedEventEmitter from 'typed-emitter';
4
- import type { SignalOptions } from '../api/SignalClient';
5
- import { SignalClient } from '../api/SignalClient';
6
- import type { BaseE2EEManager } from '../e2ee/E2eeManager';
7
- import type { InternalRoomOptions } from '../options';
8
- import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
9
- import PCTransport from './PCTransport';
10
- import { PCTransportManager } from './PCTransportManager';
11
- import { DataChannelKind } from './data-channel/types';
12
- import { DataTrackInfo } from './data-track/types';
13
- import type LocalTrack from './track/LocalTrack';
14
- import type LocalTrackPublication from './track/LocalTrackPublication';
15
- import LocalVideoTrack from './track/LocalVideoTrack';
16
- import type { SimulcastTrackInfo } from './track/LocalVideoTrack';
17
- import type RemoteTrackPublication from './track/RemoteTrackPublication';
18
- import type { Track } from './track/Track';
19
- import type { TrackPublishOptions, VideoCodec } from './track/options';
20
- export { DataChannelKind };
21
- declare const RTCEngine_base: new () => TypedEventEmitter<EngineEventCallbacks>;
22
- /** @internal */
23
- export default class RTCEngine extends RTCEngine_base {
24
- private options;
25
- client: SignalClient;
26
- rtcConfig: RTCConfiguration;
27
- peerConnectionTimeout: number;
28
- fullReconnectOnNext: boolean;
29
- pcManager?: PCTransportManager;
30
- /**
31
- * @internal
32
- */
33
- latestJoinResponse?: JoinResponse;
34
- /**
35
- * @internal
36
- */
37
- latestRemoteOfferId: number;
38
- /** @internal */
39
- e2eeManager: BaseE2EEManager | undefined;
40
- get isClosed(): boolean;
41
- get isNewlyCreated(): boolean;
42
- get pendingReconnect(): boolean;
43
- get serverVersion(): string | undefined;
44
- /**
45
- * Owns the data channels: the three flow-controlled publisher wrappers (engine-lifetime; the
46
- * RTCDataChannel handles underneath are attached/detached as peer connections come and go, with
47
- * waiter invalidation built into the turnover) plus the subscriber-side receive handles.
48
- */
49
- private dataChannels;
50
- private get reliableChannel();
51
- private get lossyChannel();
52
- private get dataTrackChannel();
53
- private subscriberPrimary;
54
- private pcState;
55
- private _isClosed;
56
- private _isNewlyCreated;
57
- private pendingTrackResolvers;
58
- private url?;
59
- private token?;
60
- private signalOpts?;
61
- private reconnectAttempts;
62
- private reconnectStart;
63
- private clientConfiguration?;
64
- private attemptingReconnect;
65
- private reconnectPolicy;
66
- private reconnectTimeout?;
67
- private participantSid?;
68
- /** keeps track of how often an initial join connection has been tried */
69
- private joinAttempts;
70
- /** specifies how often an initial join connection is allowed to retry */
71
- private maxJoinAttempts;
72
- private closingLock;
73
- private dataProcessLock;
74
- private shouldFailNext;
75
- private shouldFailOnV1Path;
76
- private regionStrategy?;
77
- private log;
78
- private loggerOptions;
79
- private publisherConnectionPromise;
80
- private reliableReceivedState;
81
- private midToTrackId;
82
- /** used to indicate whether the browser is currently waiting to reconnect */
83
- private isWaitingForNetworkReconnect;
84
- /** set while the local participant's connection quality is `LOST`; forces a full reconnect on timeout */
85
- private lostQualityTimeout?;
86
- /** timestamp (ms) the primary transport entered `CONNECTING`, used to bound how long we tolerate it */
87
- private transportConnectingSince?;
88
- constructor(options: InternalRoomOptions);
89
- /** @internal */
90
- get logContext(): {
91
- room: string | undefined;
92
- roomID: string | undefined;
93
- participant: string | undefined;
94
- participantID: string | undefined;
95
- };
96
- join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal,
97
- /** setting this to true results in dual peer connection mode being used */
98
- useV0Path?: boolean): Promise<{
99
- joinResponse: JoinResponse;
100
- serverInfo: Partial<ServerInfo>;
101
- }>;
102
- /**
103
- * @param reason why the session is ending, recorded by the signal lifecycle. Worth passing
104
- * wherever the caller knows more than "someone called close" — the server's leave reason, or
105
- * having given up on reconnecting.
106
- */
107
- close(reason?: string): Promise<void>;
108
- cleanupPeerConnections(): Promise<void>;
109
- cleanupLossyDataStats(): void;
110
- cleanupClient(reason?: string): Promise<void>;
111
- addTrack(req: AddTrackRequest): Promise<TrackInfo>;
112
- /**
113
- * Removes sender from PeerConnection, returning true if it was removed successfully
114
- * and a negotiation is necessary
115
- * @param sender
116
- * @returns
117
- */
118
- removeTrack(sender: RTCRtpSender): boolean;
119
- updateMuteStatus(trackSid: string, muted: boolean): void;
120
- get dataSubscriberReadyState(): string | undefined;
121
- getConnectedServerAddress(): Promise<string | undefined>;
122
- setRegionStrategy(strategy: RegionStrategy | undefined): void;
123
- private configure;
124
- private setupSignalClientCallbacks;
125
- private makeRTCConfiguration;
126
- /**
127
- * Populate the publisher PC so its first offer carries the data channels + recvonly media
128
- * sections. Required for every V1 connection: Firefox only binds receive decoders for media
129
- * present in that first offer, and the offer-with-join path needs the sections to
130
- * build a meaningful initial offer. Must be called on a configured pcManager.
131
- */
132
- private applyInitialPublisherLayout;
133
- private addMediaSections;
134
- private createDataChannels;
135
- private handleDataChannel;
136
- /** Normalizes an incoming data-channel message into bytes, or logs and returns undefined. */
137
- private decodeDataMessage;
138
- private handleDataMessage;
139
- private handleDataTrackMessage;
140
- private handleDataError;
141
- private handleDataChannelClose;
142
- createSender(track: LocalTrack, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender>;
143
- createSimulcastSender(track: LocalVideoTrack, simulcastTrack: SimulcastTrackInfo, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender | undefined>;
144
- private get frameMetadataWorker();
145
- private setupFrameMetadataSender;
146
- private createTransceiverRTCRtpSender;
147
- private createSimulcastTransceiverSender;
148
- private createRTCRtpSender;
149
- private handleDisconnect;
150
- /**
151
- * A sustained local `LOST` while connected and publishing means the server isn't receiving
152
- * our media, so force a full reconnect; any non-`LOST` value cancels a pending trigger.
153
- */
154
- private handleLocalConnectionQuality;
155
- private scheduleLostQualityReconnect;
156
- private clearLostQualityTimeout;
157
- /** Whether the publisher currently has any sender with a live track. */
158
- private hasActivePublisherSenders;
159
- /**
160
- * Forces a full reconnect while keeping the engine (and its saved credentials) alive. Used by
161
- * Room's connection-reconcile safety net when the transport silently died but we looked connected.
162
- * @internal
163
- */
164
- reconnect(reason?: ReconnectReason): void;
165
- private attemptReconnect;
166
- private getNextRetryDelay;
167
- private restartConnection;
168
- private resumeConnection;
169
- waitForPCInitialConnection(timeout?: number, abortController?: AbortController): Promise<void>;
170
- private waitForPCReconnected;
171
- waitForRestarted: () => Promise<void>;
172
- /** @internal */
173
- publishRpcAck(destinationIdentity: string, requestId: string): Promise<void>;
174
- sendDataPacket(packet: DataPacket,
175
- /** Data-track frames don't come through here — they're sent pre-serialized via {@link sendDataTrackFrame }. */
176
- kind: Exclude<DataChannelKind, DataChannelKind.DATA_TRACK_LOSSY>): Promise<void>;
177
- /**
178
- * Sends pre-serialized bytes on the data-track channel. This is the one send path that doesn't
179
- * go through {@link sendDataPacket} — Room's `packetAvailable` handler calls it directly with
180
- * bytes the data-track pipeline already serialized.
181
- *
182
- * @internal
183
- */
184
- sendDataTrackFrame(bytes: NonSharedUint8Array): Promise<void>;
185
- private resendReliableMessagesForResume;
186
- /** The flow-control gate for `kind` — see {@link FlowControlledDataChannel}. */
187
- private flowControlFor;
188
- /**
189
- * Resolves once the caller may send on the `kind` channel — see
190
- * {@link FlowControlledDataChannel.waitForHeadroomWithLock}.
191
- */
192
- waitForBufferHeadroom(kind: DataChannelKind): Promise<void>;
193
- /**
194
- * @internal
195
- */
196
- ensureDataTransportConnected(kind: DataChannelKind, subscriber?: boolean): Promise<void>;
197
- private ensurePublisherConnected;
198
- verifyTransport(): boolean;
199
- /** @internal */
200
- negotiate(): Promise<void>;
201
- dataChannelForKind(kind: DataChannelKind, sub?: boolean): RTCDataChannel | undefined;
202
- /** @internal */
203
- sendSyncState(remoteTracks: RemoteTrackPublication[], localTracks: LocalTrackPublication[], localDataTrackInfos: Array<DataTrackInfo>): void;
204
- failNext(): void;
205
- failNextV1Path(): void;
206
- private onRtpMapAvailable;
207
- private dataChannelsInfo;
208
- private clearReconnectTimeout;
209
- private clearPendingReconnect;
210
- private handleBrowserOnLine;
211
- private handleBrowserOffline;
212
- private registerOnLineListener;
213
- private deregisterOnLineListener;
214
- getTrackIdForReceiver(receiver: RTCRtpReceiver): string | undefined;
215
- }
216
- export type EngineEventCallbacks = {
217
- connected: (joinResp: JoinResponse) => void;
218
- disconnected: (reason?: DisconnectReason) => void;
219
- resuming: () => void;
220
- resumed: () => void;
221
- restarting: () => void;
222
- restarted: () => void;
223
- signalResumed: () => void;
224
- signalRestarted: (joinResp: JoinResponse) => void;
225
- closing: () => void;
226
- mediaTrackAdded: (track: MediaStreamTrack, streams: MediaStream, receiver: RTCRtpReceiver) => void;
227
- activeSpeakersUpdate: (speakers: Array<SpeakerInfo>) => void;
228
- dataPacketReceived: (packet: DataPacket, encryptionType: Encryption_Type) => void;
229
- transcriptionReceived: (transcription: Transcription) => void;
230
- transportsCreated: (publisher: PCTransport, subscriber?: PCTransport) => void;
231
- /** @internal */
232
- trackSenderAdded: (track: Track, sender: RTCRtpSender) => void;
233
- rtpVideoMapUpdate: (rtpMap: Map<number, VideoCodec>) => void;
234
- dcBufferStatusChanged: (isLow: boolean, kind: DataChannelKind) => void;
235
- participantUpdate: (infos: ParticipantInfo[]) => void;
236
- roomUpdate: (room: RoomModel) => void;
237
- roomMoved: (room: RoomMovedResponse) => void;
238
- connectionQualityUpdate: (update: ConnectionQualityUpdate) => void;
239
- speakersChanged: (speakerUpdates: SpeakerInfo[]) => void;
240
- streamStateChanged: (update: StreamStateUpdate) => void;
241
- subscriptionError: (resp: SubscriptionResponse) => void;
242
- subscriptionPermissionUpdate: (update: SubscriptionPermissionUpdate) => void;
243
- subscribedQualityUpdate: (update: SubscribedQualityUpdate) => void;
244
- localTrackUnpublished: (unpublishedResponse: TrackUnpublishedResponse) => void;
245
- localTrackSubscribed: (trackSid: string) => void;
246
- remoteMute: (trackSid: string, muted: boolean) => void;
247
- offline: () => void;
248
- signalRequestResponse: (response: RequestResponse) => void;
249
- signalConnected: (joinResp: JoinResponse) => void;
250
- publishDataTrackResponse: (event: PublishDataTrackResponse) => void;
251
- unPublishDataTrackResponse: (event: UnpublishDataTrackResponse) => void;
252
- dataTrackSubscriberHandles: (event: DataTrackSubscriberHandles) => void;
253
- dataTrackPacketReceived: (packet: Uint8Array) => void;
254
- joined: (joinResponse: JoinResponse) => void;
255
- tokenRefreshed: (token: string) => void;
256
- serverRegionsReported: (regions: RegionSettings) => void;
257
- };
258
- export interface RegionStrategy {
259
- getNextUrl(abortSignal?: AbortSignal): Promise<string | null>;
260
- resetAttempts(): void;
261
- }
262
- //# sourceMappingURL=RTCEngine.d.ts.map
1
+ import type { AddTrackRequest, ConnectionQualityUpdate, JoinResponse, RegionSettings, StreamStateUpdate, SubscriptionPermissionUpdate, SubscriptionResponse } from '@livekit/protocol';
2
+ import { DataPacket, DataTrackSubscriberHandles, DisconnectReason, Encryption_Type, ParticipantInfo, PublishDataTrackResponse, ReconnectReason, RequestResponse, Room as RoomModel, RoomMovedResponse, ServerInfo, SpeakerInfo, SubscribedQualityUpdate, TrackInfo, TrackUnpublishedResponse, Transcription, UnpublishDataTrackResponse } from '@livekit/protocol';
3
+ import type TypedEventEmitter from 'typed-emitter';
4
+ import type { SignalOptions } from '../api/SignalClient';
5
+ import { SignalClient } from '../api/SignalClient';
6
+ import type { BaseE2EEManager } from '../e2ee/E2eeManager';
7
+ import type { InternalRoomOptions } from '../options';
8
+ import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
9
+ import PCTransport from './PCTransport';
10
+ import { PCTransportManager } from './PCTransportManager';
11
+ import { DataChannelKind } from './data-channel/types';
12
+ import { DataTrackInfo } from './data-track/types';
13
+ import type LocalTrack from './track/LocalTrack';
14
+ import type LocalTrackPublication from './track/LocalTrackPublication';
15
+ import LocalVideoTrack from './track/LocalVideoTrack';
16
+ import type { SimulcastTrackInfo } from './track/LocalVideoTrack';
17
+ import type RemoteTrackPublication from './track/RemoteTrackPublication';
18
+ import type { Track } from './track/Track';
19
+ import type { TrackPublishOptions, VideoCodec } from './track/options';
20
+ export { DataChannelKind };
21
+ declare const RTCEngine_base: new () => TypedEventEmitter<EngineEventCallbacks>;
22
+ /** @internal */
23
+ export default class RTCEngine extends RTCEngine_base {
24
+ private options;
25
+ client: SignalClient;
26
+ rtcConfig: RTCConfiguration;
27
+ peerConnectionTimeout: number;
28
+ fullReconnectOnNext: boolean;
29
+ pcManager?: PCTransportManager;
30
+ /**
31
+ * @internal
32
+ */
33
+ latestJoinResponse?: JoinResponse;
34
+ /**
35
+ * @internal
36
+ */
37
+ latestRemoteOfferId: number;
38
+ /** @internal */
39
+ e2eeManager: BaseE2EEManager | undefined;
40
+ get isClosed(): boolean;
41
+ get isNewlyCreated(): boolean;
42
+ get pendingReconnect(): boolean;
43
+ get serverVersion(): (string | undefined);
44
+ /**
45
+ * Owns the data channels: the three flow-controlled publisher wrappers (engine-lifetime; the
46
+ * RTCDataChannel handles underneath are attached/detached as peer connections come and go, with
47
+ * waiter invalidation built into the turnover) plus the subscriber-side receive handles.
48
+ */
49
+ private dataChannels;
50
+ private get reliableChannel();
51
+ private get lossyChannel();
52
+ private get dataTrackChannel();
53
+ private subscriberPrimary;
54
+ private pcState;
55
+ private _isClosed;
56
+ private _isNewlyCreated;
57
+ private pendingTrackResolvers;
58
+ private url?;
59
+ private token?;
60
+ private signalOpts?;
61
+ private reconnectAttempts;
62
+ private reconnectStart;
63
+ private clientConfiguration?;
64
+ private attemptingReconnect;
65
+ private reconnectAbortController?;
66
+ private reconnectPolicy;
67
+ private reconnectTimeout?;
68
+ private participantSid?;
69
+ /** keeps track of how often an initial join connection has been tried */
70
+ private joinAttempts;
71
+ /**
72
+ * When the current join attempt began (`performance.now()`), taken at the top of `join` before
73
+ * the signal connection or the peer connections exist. Every attempt (a join retry, or the join
74
+ * inside a full restart) times itself from scratch. Consumed when the primary transport first
75
+ * connects, to hand the publisher its connection setup time; resumes never set it.
76
+ */
77
+ private joinStartedAt?;
78
+ /** specifies how often an initial join connection is allowed to retry */
79
+ private maxJoinAttempts;
80
+ private closingLock;
81
+ private dataProcessLock;
82
+ private shouldFailNext;
83
+ private shouldFailOnV1Path;
84
+ private regionStrategy?;
85
+ private log;
86
+ private loggerOptions;
87
+ private publisherConnectionPromise;
88
+ private reliableReceivedState;
89
+ private midToTrackId;
90
+ /** used to indicate whether the browser is currently waiting to reconnect */
91
+ private isWaitingForNetworkReconnect;
92
+ /** set while the local participant's connection quality is `LOST`; forces a full reconnect on timeout */
93
+ private lostQualityTimeout?;
94
+ /** timestamp (ms) the primary transport entered `CONNECTING`, used to bound how long we tolerate it */
95
+ private transportConnectingSince?;
96
+ /**
97
+ * Abort handlers for the in-flight `negotiate()` calls, which a single central
98
+ * Closing/Restarting listener pair fans out to. Registering a listener pair per call instead
99
+ * accumulates them on the engine emitter and trips its max-listener warning under
100
+ * renegotiation bursts.
101
+ */
102
+ private pendingNegotiationAborts;
103
+ constructor(options: InternalRoomOptions);
104
+ get logContext(): {
105
+ room: string | undefined;
106
+ roomID: string | undefined;
107
+ participant: string | undefined;
108
+ participantID: string | undefined;
109
+ };
110
+ join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal,
111
+ /** setting this to true results in dual peer connection mode being used */
112
+ useV0Path?: boolean): Promise<{
113
+ joinResponse: JoinResponse;
114
+ serverInfo: Partial<ServerInfo>;
115
+ }>;
116
+ /**
117
+ * @param reason why the session is ending, recorded by the signal lifecycle. Worth passing
118
+ * wherever the caller knows more than "someone called close" — the server's leave reason, or
119
+ * having given up on reconnecting.
120
+ */
121
+ close(reason?: string): Promise<void>;
122
+ cleanupPeerConnections(): Promise<void>;
123
+ cleanupLossyDataStats(): void;
124
+ cleanupClient(reason?: string): Promise<void>;
125
+ addTrack(req: AddTrackRequest): Promise<TrackInfo>;
126
+ /**
127
+ * Removes sender from PeerConnection, returning true if it was removed successfully
128
+ * and a negotiation is necessary
129
+ * @param sender
130
+ * @returns
131
+ */
132
+ removeTrack(sender: RTCRtpSender): boolean;
133
+ updateMuteStatus(trackSid: string, muted: boolean): void;
134
+ get dataSubscriberReadyState(): (string | undefined);
135
+ getConnectedServerAddress(): Promise<string | undefined>;
136
+ setRegionStrategy(strategy: RegionStrategy | undefined): void;
137
+ private configure;
138
+ private setupSignalClientCallbacks;
139
+ private makeRTCConfiguration;
140
+ /**
141
+ * Populate the publisher PC so its first offer carries the data channels + recvonly media
142
+ * sections. Required for every V1 connection: Firefox only binds receive decoders for media
143
+ * present in that first offer, and the offer-with-join path needs the sections to
144
+ * build a meaningful initial offer. Must be called on a configured pcManager.
145
+ */
146
+ private applyInitialPublisherLayout;
147
+ private addMediaSections;
148
+ private createDataChannels;
149
+ private handleDataChannel;
150
+ /** Normalizes an incoming data-channel message into bytes, or logs and returns undefined. */
151
+ private decodeDataMessage;
152
+ private handleDataMessage;
153
+ private handleDataTrackMessage;
154
+ private handleDataError;
155
+ private handleDataChannelClose;
156
+ createSender(track: LocalTrack, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender>;
157
+ createSimulcastSender(track: LocalVideoTrack, simulcastTrack: SimulcastTrackInfo, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender | undefined>;
158
+ private get frameMetadataWorker();
159
+ private setupFrameMetadataSender;
160
+ private createTransceiverRTCRtpSender;
161
+ private createSimulcastTransceiverSender;
162
+ private createRTCRtpSender;
163
+ private handleDisconnect;
164
+ /**
165
+ * A sustained local `LOST` while connected and publishing means the server isn't receiving
166
+ * our media, so force a full reconnect; any non-`LOST` value cancels a pending trigger.
167
+ */
168
+ private handleLocalConnectionQuality;
169
+ private scheduleLostQualityReconnect;
170
+ private clearLostQualityTimeout;
171
+ /** Whether the publisher currently has any sender with a live track. */
172
+ private hasActivePublisherSenders;
173
+ /**
174
+ * Forces a full reconnect while keeping the engine (and its saved credentials) alive. Used by
175
+ * Room's connection-reconcile safety net when the transport silently died but we looked connected.
176
+ * @internal
177
+ */
178
+ reconnect(reason?: ReconnectReason): void;
179
+ private attemptReconnect;
180
+ private getNextRetryDelay;
181
+ private restartConnection;
182
+ private resumeConnection;
183
+ waitForPCInitialConnection(timeout?: number, abortController?: AbortController): Promise<void>;
184
+ private waitForPCReconnected;
185
+ waitForRestarted: () => Promise<void>;
186
+ /** @internal */
187
+ publishRpcAck(destinationIdentity: string, requestId: string): Promise<void>;
188
+ sendDataPacket(packet: DataPacket,
189
+ /** Data-track frames don't come through here — they're sent pre-serialized via {@link sendDataTrackFrame }. */
190
+ kind: Exclude<DataChannelKind, DataChannelKind.DATA_TRACK_LOSSY>): Promise<void>;
191
+ /**
192
+ * Sends pre-serialized bytes on the data-track channel. This is the one send path that doesn't
193
+ * go through {@link sendDataPacket} — Room's `packetAvailable` handler calls it directly with
194
+ * bytes the data-track pipeline already serialized.
195
+ *
196
+ * @internal
197
+ */
198
+ sendDataTrackFrame(bytes: NonSharedUint8Array): Promise<void>;
199
+ private resendReliableMessagesForResume;
200
+ /** The flow-control gate for `kind` — see {@link FlowControlledDataChannel}. */
201
+ private flowControlFor;
202
+ /**
203
+ * Resolves once the caller may send on the `kind` channel — see
204
+ * {@link FlowControlledDataChannel.waitForHeadroomWithLock}.
205
+ */
206
+ waitForBufferHeadroom(kind: DataChannelKind): Promise<void>;
207
+ /**
208
+ * @internal
209
+ */
210
+ ensureDataTransportConnected(kind: DataChannelKind, subscriber?: boolean): Promise<void>;
211
+ private ensurePublisherConnected;
212
+ verifyTransport(): boolean;
213
+ /** @internal */
214
+ negotiate(): Promise<void>;
215
+ dataChannelForKind(kind: DataChannelKind, sub?: boolean): RTCDataChannel | undefined;
216
+ /** @internal */
217
+ sendSyncState(remoteTracks: RemoteTrackPublication[], localTracks: LocalTrackPublication[], localDataTrackInfos: Array<DataTrackInfo>): void;
218
+ failNext(): void;
219
+ failNextV1Path(): void;
220
+ private onRtpMapAvailable;
221
+ private dataChannelsInfo;
222
+ private clearReconnectTimeout;
223
+ private clearPendingReconnect;
224
+ private handleBrowserOnLine;
225
+ private handleBrowserOffline;
226
+ private registerOnLineListener;
227
+ private deregisterOnLineListener;
228
+ getTrackIdForReceiver(receiver: RTCRtpReceiver): string | undefined;
229
+ }
230
+ export type EngineEventCallbacks = {
231
+ connected: (joinResp: JoinResponse) => void;
232
+ disconnected: (reason?: DisconnectReason) => void;
233
+ resuming: () => void;
234
+ resumed: () => void;
235
+ restarting: () => void;
236
+ restarted: () => void;
237
+ signalResumed: () => void;
238
+ signalRestarted: (joinResp: JoinResponse) => void;
239
+ closing: () => void;
240
+ mediaTrackAdded: (track: MediaStreamTrack, streams: MediaStream, receiver: RTCRtpReceiver) => void;
241
+ activeSpeakersUpdate: (speakers: Array<SpeakerInfo>) => void;
242
+ dataPacketReceived: (packet: DataPacket, encryptionType: Encryption_Type) => void;
243
+ transcriptionReceived: (transcription: Transcription) => void;
244
+ transportsCreated: (publisher: PCTransport, subscriber?: PCTransport) => void;
245
+ /** @internal */
246
+ trackSenderAdded: (track: Track, sender: RTCRtpSender) => void;
247
+ rtpVideoMapUpdate: (rtpMap: Map<number, VideoCodec>) => void;
248
+ dcBufferStatusChanged: (isLow: boolean, kind: DataChannelKind) => void;
249
+ participantUpdate: (infos: ParticipantInfo[]) => void;
250
+ roomUpdate: (room: RoomModel) => void;
251
+ roomMoved: (room: RoomMovedResponse) => void;
252
+ connectionQualityUpdate: (update: ConnectionQualityUpdate) => void;
253
+ speakersChanged: (speakerUpdates: SpeakerInfo[]) => void;
254
+ streamStateChanged: (update: StreamStateUpdate) => void;
255
+ subscriptionError: (resp: SubscriptionResponse) => void;
256
+ subscriptionPermissionUpdate: (update: SubscriptionPermissionUpdate) => void;
257
+ subscribedQualityUpdate: (update: SubscribedQualityUpdate) => void;
258
+ localTrackUnpublished: (unpublishedResponse: TrackUnpublishedResponse) => void;
259
+ localTrackSubscribed: (trackSid: string) => void;
260
+ remoteMute: (trackSid: string, muted: boolean) => void;
261
+ offline: () => void;
262
+ signalRequestResponse: (response: RequestResponse) => void;
263
+ signalConnected: (joinResp: JoinResponse) => void;
264
+ publishDataTrackResponse: (event: PublishDataTrackResponse) => void;
265
+ unPublishDataTrackResponse: (event: UnpublishDataTrackResponse) => void;
266
+ dataTrackSubscriberHandles: (event: DataTrackSubscriberHandles) => void;
267
+ dataTrackPacketReceived: (packet: Uint8Array) => void;
268
+ joined: (joinResponse: JoinResponse) => void;
269
+ tokenRefreshed: (token: string) => void;
270
+ serverRegionsReported: (regions: RegionSettings) => void;
271
+ requestSubscribedCodecRefresh: () => void;
272
+ };
273
+ export interface RegionStrategy {
274
+ getNextUrl(abortSignal?: AbortSignal): Promise<string | null>;
275
+ resetAttempts(): void;
276
+ }
277
+ //# sourceMappingURL=RTCEngine.d.ts.map
@@ -1,24 +1,24 @@
1
- /** Controls reconnecting of the client */
2
- export interface ReconnectPolicy {
3
- /** Called after disconnect was detected
4
- *
5
- * @returns {number | null} Amount of time in milliseconds to delay the next reconnect attempt, `null` signals to stop retrying.
6
- */
7
- nextRetryDelayInMs(context: ReconnectContext): number | null;
8
- }
9
- export interface ReconnectContext {
10
- /**
11
- * Number of failed reconnect attempts
12
- */
13
- readonly retryCount: number;
14
- /**
15
- * Elapsed amount of time in milliseconds since the disconnect.
16
- */
17
- readonly elapsedMs: number;
18
- /**
19
- * Reason for retrying
20
- */
21
- readonly retryReason?: Error;
22
- readonly serverUrl?: string;
23
- }
24
- //# sourceMappingURL=ReconnectPolicy.d.ts.map
1
+ /** Controls reconnecting of the client */
2
+ export interface ReconnectPolicy {
3
+ /** Called after disconnect was detected
4
+ *
5
+ * @returns {number | null} Amount of time in milliseconds to delay the next reconnect attempt, `null` signals to stop retrying.
6
+ */
7
+ nextRetryDelayInMs(context: ReconnectContext): number | null;
8
+ }
9
+ export interface ReconnectContext {
10
+ /**
11
+ * Number of failed reconnect attempts
12
+ */
13
+ readonly retryCount: number;
14
+ /**
15
+ * Elapsed amount of time in milliseconds since the disconnect.
16
+ */
17
+ readonly elapsedMs: number;
18
+ /**
19
+ * Reason for retrying
20
+ */
21
+ readonly retryReason?: Error;
22
+ readonly serverUrl?: string;
23
+ }
24
+ //# sourceMappingURL=ReconnectPolicy.d.ts.map