@axonkit/client-sdk-js 0.1.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 (43) hide show
  1. package/LICENSE +85 -0
  2. package/README.md +125 -0
  3. package/dist/Room.d.ts +273 -0
  4. package/dist/axonkit-client.esm.js +1 -0
  5. package/dist/axonkit-client.umd.js +1 -0
  6. package/dist/connectionHelper/ConnectionCheck.d.ts +33 -0
  7. package/dist/data-stream/DataStreamManager.d.ts +65 -0
  8. package/dist/events.d.ts +432 -0
  9. package/dist/index.d.ts +41 -0
  10. package/dist/participant/LocalParticipant.d.ts +186 -0
  11. package/dist/participant/LocalTrackPublication.d.ts +28 -0
  12. package/dist/participant/Participant.d.ts +133 -0
  13. package/dist/participant/RemoteParticipant.d.ts +30 -0
  14. package/dist/participant/RemoteTrackPublication.d.ts +63 -0
  15. package/dist/protocol/errors.d.ts +22 -0
  16. package/dist/protocol/message.d.ts +30 -0
  17. package/dist/protocol/types.d.ts +522 -0
  18. package/dist/room/DefaultReconnectPolicy.d.ts +28 -0
  19. package/dist/room/options.d.ts +74 -0
  20. package/dist/rpc.d.ts +28 -0
  21. package/dist/signal/RPCClient.d.ts +28 -0
  22. package/dist/signal/SignalClient.d.ts +14 -0
  23. package/dist/stats/StatsCollector.d.ts +15 -0
  24. package/dist/track/LocalAudioTrack.d.ts +20 -0
  25. package/dist/track/LocalTrack.d.ts +108 -0
  26. package/dist/track/LocalVideoTrack.d.ts +35 -0
  27. package/dist/track/RemoteAudioTrack.d.ts +7 -0
  28. package/dist/track/RemoteTrack.d.ts +33 -0
  29. package/dist/track/RemoteVideoTrack.d.ts +31 -0
  30. package/dist/track/Track.d.ts +62 -0
  31. package/dist/track/create.d.ts +30 -0
  32. package/dist/track/options.d.ts +525 -0
  33. package/dist/track/processor/types.d.ts +49 -0
  34. package/dist/track/publishUtils.d.ts +14 -0
  35. package/dist/transport/TransportManager.d.ts +62 -0
  36. package/dist/types.d.ts +146 -0
  37. package/dist/utils/browser.d.ts +113 -0
  38. package/dist/utils/deviceFailure.d.ts +30 -0
  39. package/dist/utils/id.d.ts +1 -0
  40. package/dist/utils/logger.d.ts +39 -0
  41. package/dist/utils/typedEmitter.d.ts +24 -0
  42. package/dist/version.d.ts +2 -0
  43. package/package.json +80 -0
@@ -0,0 +1,33 @@
1
+ import { TypedEmitter } from '../utils/typedEmitter';
2
+ export declare enum CheckStatus {
3
+ Idle = "idle",
4
+ Running = "running",
5
+ Success = "success",
6
+ Failed = "failed",
7
+ Skipped = "skipped"
8
+ }
9
+ export interface CheckInfo {
10
+ name: string;
11
+ status: CheckStatus;
12
+ description: string;
13
+ duration?: number;
14
+ error?: string;
15
+ }
16
+ type ConnectionCheckEvents = {
17
+ statusChanged: (info: CheckInfo) => void;
18
+ };
19
+ /**
20
+ * Runs a series of connectivity checks against a given server URL.
21
+ * Useful for diagnosing connection problems before entering a room.
22
+ */
23
+ export declare class ConnectionCheck extends TypedEmitter<ConnectionCheckEvents> {
24
+ private url;
25
+ constructor(url: string);
26
+ checkSignalConnectivity(): Promise<CheckInfo>;
27
+ checkWebRTC(): Promise<CheckInfo>;
28
+ checkPublishAudio(): Promise<CheckInfo>;
29
+ checkPublishVideo(): Promise<CheckInfo>;
30
+ checkAll(): Promise<CheckInfo[]>;
31
+ private runCheck;
32
+ }
33
+ export {};
@@ -0,0 +1,65 @@
1
+ import type { RPCClient } from '../signal/RPCClient';
2
+ import type { TransportManager } from '../transport/TransportManager';
3
+ import type { SendTextOptions, StreamTextOptions, StreamBytesOptions, SendFileOptions, TextStreamInfo, ByteStreamInfo, TextStreamHandler, ByteStreamHandler } from '../types';
4
+ export declare const STREAM_DATA_LABEL = "__stream";
5
+ export declare class TextStreamReader implements AsyncIterable<string> {
6
+ readonly info: TextStreamInfo;
7
+ private readonly stream;
8
+ [Symbol.asyncIterator](): AsyncIterator<string>;
9
+ readAll(): Promise<string>;
10
+ }
11
+ export declare class ByteStreamReader implements AsyncIterable<Uint8Array> {
12
+ readonly info: ByteStreamInfo;
13
+ private readonly stream;
14
+ [Symbol.asyncIterator](): AsyncIterator<Uint8Array>;
15
+ readAll(): Promise<Uint8Array>;
16
+ }
17
+ export declare class TextStreamWriter {
18
+ readonly info: TextStreamInfo;
19
+ private dataProducer;
20
+ private streamId;
21
+ private closed;
22
+ write(text: string): Promise<void>;
23
+ close(): Promise<void>;
24
+ }
25
+ export declare class ByteStreamWriter {
26
+ readonly info: ByteStreamInfo;
27
+ private dataProducer;
28
+ private streamId;
29
+ private closed;
30
+ write(data: Uint8Array): Promise<void>;
31
+ close(): Promise<void>;
32
+ }
33
+ export declare class DataStreamSender {
34
+ private rpc;
35
+ private transportManager;
36
+ private dataProducer?;
37
+ private dataProducerPromise?;
38
+ constructor(rpc: RPCClient, transportManager: TransportManager);
39
+ private ensureDataProducer;
40
+ private createDataProducer;
41
+ sendText(text: string, options?: SendTextOptions): Promise<{
42
+ id: string;
43
+ }>;
44
+ streamText(options?: StreamTextOptions): Promise<TextStreamWriter>;
45
+ sendFile(file: File, options?: SendFileOptions): Promise<{
46
+ id: string;
47
+ }>;
48
+ streamBytes(options?: StreamBytesOptions): Promise<ByteStreamWriter>;
49
+ close(): void;
50
+ }
51
+ export declare class DataStreamReceiver {
52
+ private textHandlers;
53
+ private byteHandlers;
54
+ private activeStreams;
55
+ private localIdentity;
56
+ setLocalIdentity(identity: string): void;
57
+ registerTextStreamHandler(topic: string, handler: TextStreamHandler): void;
58
+ unregisterTextStreamHandler(topic: string): void;
59
+ registerByteStreamHandler(topic: string, handler: ByteStreamHandler): void;
60
+ unregisterByteStreamHandler(topic: string): void;
61
+ handleMessage(data: ArrayBuffer, senderIdentity: string, senderSid: string): void;
62
+ private handleHeader;
63
+ private handleChunk;
64
+ private handleClose;
65
+ }
@@ -0,0 +1,432 @@
1
+ /**
2
+ * Events emitted by a {@link Room} instance.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * room.on(RoomEvent.TrackSubscribed, (track, publication, participant) => {
7
+ * // handle new track
8
+ * });
9
+ * ```
10
+ */
11
+ export declare enum RoomEvent {
12
+ /** Successfully connected to the room. */
13
+ Connected = "connected",
14
+ /**
15
+ * Disconnected from the room. This may be triggered by the server, by an
16
+ * explicit call to {@link Room.disconnect}, or because of a network failure.
17
+ *
18
+ * args: `(reason?: DisconnectReason)`
19
+ */
20
+ Disconnected = "disconnected",
21
+ /** The SDK is attempting to reconnect to the room after a connection interruption. */
22
+ Reconnecting = "reconnecting",
23
+ /** Successfully reconnected to the room after a temporary disconnection. */
24
+ Reconnected = "reconnected",
25
+ /**
26
+ * Whenever the connection state of the room changes.
27
+ *
28
+ * args: `(state: RoomState)`
29
+ */
30
+ ConnectionStateChanged = "connectionStateChanged",
31
+ /**
32
+ * When the signal connection to the server has been interrupted. This is
33
+ * not always noticeable to users. It will resolve with
34
+ * {@link RoomEvent.Reconnected} once re-established. If media also fails,
35
+ * an additional {@link RoomEvent.Reconnecting} will be emitted.
36
+ */
37
+ SignalReconnecting = "signalReconnecting",
38
+ /**
39
+ * When input or output devices on the machine have changed.
40
+ */
41
+ MediaDevicesChanged = "mediaDevicesChanged",
42
+ /**
43
+ * When an error occurs while attempting to create a track from a device.
44
+ * Use {@link MediaDeviceFailure.getFailure} to get the specific reason.
45
+ *
46
+ * args: `(error: Error)`
47
+ */
48
+ MediaDevicesError = "mediaDevicesError",
49
+ /**
50
+ * A remote participant has joined the room.
51
+ *
52
+ * args: `(participant: RemoteParticipant)`
53
+ */
54
+ ParticipantJoined = "participantJoined",
55
+ /**
56
+ * A remote participant has left the room.
57
+ *
58
+ * args: `(participant: RemoteParticipant, reason?: string)`
59
+ */
60
+ ParticipantLeft = "participantLeft",
61
+ /**
62
+ * A remote participant's metadata or attributes have been updated.
63
+ *
64
+ * args: `(participant: RemoteParticipant)`
65
+ */
66
+ ParticipantUpdated = "participantUpdated",
67
+ /**
68
+ * Participant metadata has changed.
69
+ *
70
+ * args: `(prevMetadata: string | undefined, participant: Participant)`
71
+ */
72
+ ParticipantMetadataChanged = "participantMetadataChanged",
73
+ /**
74
+ * Participant's display name has changed.
75
+ *
76
+ * args: `(name: string, participant: Participant)`
77
+ */
78
+ ParticipantNameChanged = "participantNameChanged",
79
+ /**
80
+ * Participant attributes have changed.
81
+ *
82
+ * args: `(changedAttributes: Record<string, string>, participant: Participant)`
83
+ */
84
+ ParticipantAttributesChanged = "participantAttributesChanged",
85
+ /**
86
+ * A remote participant has published a new track.
87
+ *
88
+ * args: `(publication: RemoteTrackPublication, participant: RemoteParticipant)`
89
+ */
90
+ TrackPublished = "trackPublished",
91
+ /**
92
+ * A remote participant has unpublished a track.
93
+ *
94
+ * args: `(publication: RemoteTrackPublication, participant: RemoteParticipant)`
95
+ */
96
+ TrackUnpublished = "trackUnpublished",
97
+ /**
98
+ * A remote participant has published a new data track.
99
+ *
100
+ * args: `(dataTrack: DataTrackInfo, participant: RemoteParticipant)`
101
+ */
102
+ DataTrackPublished = "dataTrackPublished",
103
+ /**
104
+ * A remote participant has unpublished a data track.
105
+ *
106
+ * args: `(dataTrackSid: string, participant: RemoteParticipant)`
107
+ */
108
+ DataTrackUnpublished = "dataTrackUnpublished",
109
+ /**
110
+ * Subscribed to a new track from a remote participant. This is the event
111
+ * where you would typically attach the track to a media element.
112
+ *
113
+ * args: `(track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant)`
114
+ */
115
+ TrackSubscribed = "trackSubscribed",
116
+ /**
117
+ * Could not subscribe to a track.
118
+ *
119
+ * args: `(trackSid: string, participant: RemoteParticipant)`
120
+ */
121
+ TrackSubscriptionFailed = "trackSubscriptionFailed",
122
+ /**
123
+ * Unsubscribed from a remote track. The track should be detached from any
124
+ * media elements at this point.
125
+ *
126
+ * args: `(track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant)`
127
+ */
128
+ TrackUnsubscribed = "trackUnsubscribed",
129
+ /**
130
+ * A track has been muted. Fires on both remote and local participants.
131
+ *
132
+ * args: `(publication: TrackPublication, participant: Participant)`
133
+ */
134
+ TrackMuted = "trackMuted",
135
+ /**
136
+ * A track has been unmuted. Fires on both remote and local participants.
137
+ *
138
+ * args: `(publication: TrackPublication, participant: Participant)`
139
+ */
140
+ TrackUnmuted = "trackUnmuted",
141
+ /**
142
+ * A local track was published successfully.
143
+ *
144
+ * args: `(publication: LocalTrackPublication, participant: LocalParticipant)`
145
+ */
146
+ LocalTrackPublished = "localTrackPublished",
147
+ /**
148
+ * A local track was unpublished. When a user stops sharing their screen
149
+ * by pressing "End" on the browser UI, this event will also fire.
150
+ *
151
+ * args: `(publication: LocalTrackPublication, participant: LocalParticipant)`
152
+ */
153
+ LocalTrackUnpublished = "localTrackUnpublished",
154
+ /**
155
+ * When a local audio track is published, the SDK checks whether there is
156
+ * complete silence on that track and emits this event. This allows
157
+ * applications to show UI informing users about hardware issues.
158
+ */
159
+ LocalAudioSilenceDetected = "localAudioSilenceDetected",
160
+ /**
161
+ * Active speakers changed. List of speakers ordered by audio level.
162
+ * Includes the local participant.
163
+ *
164
+ * args: `(speakers: ActiveSpeaker[])`
165
+ */
166
+ ActiveSpeakersChanged = "activeSpeakersChanged",
167
+ /** Room-level metadata has been updated by the server. */
168
+ RoomUpdated = "roomUpdated",
169
+ /**
170
+ * Data received from a remote participant via a DataChannel.
171
+ *
172
+ * args: `(data: ArrayBuffer, participant?: RemoteParticipant)`
173
+ */
174
+ DataReceived = "dataReceived",
175
+ /**
176
+ * The connection quality of a participant has changed.
177
+ *
178
+ * args: `(quality: ConnectionQuality, participant: Participant)`
179
+ */
180
+ ConnectionQualityChanged = "connectionQualityChanged",
181
+ /**
182
+ * Audio playback status has changed. When `canPlaybackAudio` becomes
183
+ * `false`, the application should display UI to prompt user interaction,
184
+ * then call {@link Room.startAudio}.
185
+ */
186
+ AudioPlaybackStatusChanged = "audioPlaybackStatusChanged",
187
+ /**
188
+ * A message has been received or sent (chat, whiteboard, document, etc.).
189
+ *
190
+ * args: `(message: Message, participant?: Participant)`
191
+ */
192
+ ChatMessage = "chatMessage",
193
+ /**
194
+ * Messages have been deleted.
195
+ *
196
+ * args: `(ids: string[], type?: string)`
197
+ */
198
+ MessageDeleted = "messageDeleted",
199
+ /**
200
+ * A room shared state key has been updated.
201
+ *
202
+ * args: `(key: string, value: string, participantSid?: string, participantIdentity?: string)`
203
+ */
204
+ StateUpdated = "stateUpdated",
205
+ /**
206
+ * A room shared state key has been deleted.
207
+ *
208
+ * args: `(key: string, participantSid?: string, participantIdentity?: string)`
209
+ */
210
+ StateDeleted = "stateDeleted",
211
+ /**
212
+ * The server has pushed a new refresh token. Applications should persist
213
+ * this token for reconnection.
214
+ *
215
+ * args: `(token: string)`
216
+ */
217
+ TokenRefreshed = "tokenRefreshed",
218
+ /**
219
+ * Video playback status has changed. Similar to
220
+ * {@link RoomEvent.AudioPlaybackStatusChanged} but for video.
221
+ */
222
+ VideoPlaybackStatusChanged = "videoPlaybackStatusChanged",
223
+ /**
224
+ * The stream state of a remote track has changed (e.g. the server
225
+ * paused or resumed forwarding media). This is distinct from
226
+ * {@link RoomEvent.TrackMuted} which indicates the publisher's intent.
227
+ *
228
+ * args: `(publication: RemoteTrackPublication, streamState: StreamState, participant: RemoteParticipant)`
229
+ */
230
+ TrackStreamStateChanged = "trackStreamStateChanged",
231
+ /**
232
+ * A new group (breakout room) has been created.
233
+ *
234
+ * args: `(group: GroupInfo)`
235
+ */
236
+ GroupCreated = "groupCreated",
237
+ /**
238
+ * A group's metadata or participant count has changed.
239
+ *
240
+ * args: `(group: GroupInfo)`
241
+ */
242
+ GroupUpdated = "groupUpdated",
243
+ /**
244
+ * A group has been deleted. All participants in the group are
245
+ * returned to the main room.
246
+ *
247
+ * args: `(groupId: string)`
248
+ */
249
+ GroupDeleted = "groupDeleted",
250
+ /**
251
+ * A participant has joined a group.
252
+ *
253
+ * args: `(groupId: string, participant: RemoteParticipant | LocalParticipant)`
254
+ */
255
+ GroupParticipantJoined = "groupParticipantJoined",
256
+ /**
257
+ * A participant has left a group (returned to the main room).
258
+ *
259
+ * args: `(groupId: string, participant: RemoteParticipant | LocalParticipant)`
260
+ */
261
+ GroupParticipantLeft = "groupParticipantLeft"
262
+ }
263
+ /**
264
+ * Events emitted by a {@link Participant} instance (local or remote).
265
+ *
266
+ * @example
267
+ * ```ts
268
+ * participant.on(ParticipantEvent.TrackMuted, (publication) => {
269
+ * console.log('track muted', publication.trackName);
270
+ * });
271
+ * ```
272
+ */
273
+ export declare enum ParticipantEvent {
274
+ /**
275
+ * The participant has published a new track.
276
+ *
277
+ * args: `(publication: TrackPublication)`
278
+ */
279
+ TrackPublished = "trackPublished",
280
+ /**
281
+ * The participant has unpublished a track.
282
+ *
283
+ * args: `(publication: TrackPublication)`
284
+ */
285
+ TrackUnpublished = "trackUnpublished",
286
+ /** One of the participant's tracks has been muted. */
287
+ TrackMuted = "trackMuted",
288
+ /** One of the participant's tracks has been unmuted. */
289
+ TrackUnmuted = "trackUnmuted",
290
+ /**
291
+ * Subscribed to a new track from this participant.
292
+ *
293
+ * args: `(track: RemoteTrack, publication: RemoteTrackPublication)`
294
+ */
295
+ TrackSubscribed = "trackSubscribed",
296
+ /**
297
+ * Unsubscribed from a track of this participant.
298
+ *
299
+ * args: `(track: RemoteTrack, publication: RemoteTrackPublication)`
300
+ */
301
+ TrackUnsubscribed = "trackUnsubscribed",
302
+ /**
303
+ * A local track was published by this participant.
304
+ *
305
+ * args: `(publication: LocalTrackPublication)`
306
+ */
307
+ LocalTrackPublished = "localTrackPublished",
308
+ /**
309
+ * A local track was unpublished by this participant.
310
+ *
311
+ * args: `(publication: LocalTrackPublication)`
312
+ */
313
+ LocalTrackUnpublished = "localTrackUnpublished",
314
+ /** The participant's metadata has changed. */
315
+ MetadataChanged = "metadataChanged",
316
+ /** The participant's display name has changed. */
317
+ NameChanged = "nameChanged",
318
+ /**
319
+ * The participant's attributes have changed.
320
+ *
321
+ * args: `(changedAttributes: Record<string, string>, participant: Participant)`
322
+ */
323
+ AttributesChanged = "attributesChanged",
324
+ /** The participant's speaking status has changed. */
325
+ IsSpeakingChanged = "isSpeakingChanged",
326
+ /** The connection quality of this participant has changed. */
327
+ ConnectionQualityChanged = "connectionQualityChanged",
328
+ /** The participant's permissions have changed. */
329
+ PermissionsChanged = "permissionsChanged",
330
+ /**
331
+ * The stream state of a remote track changed (server paused/resumed forwarding).
332
+ *
333
+ * args: `(publication: RemoteTrackPublication, streamState: StreamState)`
334
+ */
335
+ TrackStreamStateChanged = "trackStreamStateChanged",
336
+ /** Data received from this participant. */
337
+ DataReceived = "dataReceived",
338
+ /**
339
+ * A chat message from this participant.
340
+ *
341
+ * args: `(message: ChatMessage)`
342
+ */
343
+ ChatMessage = "chatMessage"
344
+ }
345
+ /**
346
+ * Events emitted by a {@link Track} instance.
347
+ *
348
+ * @example
349
+ * ```ts
350
+ * track.on(TrackEvent.Muted, () => {
351
+ * console.log('track was muted');
352
+ * });
353
+ * ```
354
+ */
355
+ export declare enum TrackEvent {
356
+ /**
357
+ * The track has been muted. For local tracks this happens when
358
+ * `setMuted(true)` is called or the producer is paused.
359
+ */
360
+ Muted = "muted",
361
+ /** The track has been unmuted. */
362
+ Unmuted = "unmuted",
363
+ /**
364
+ * The track has permanently ended. For local tracks, this typically means
365
+ * the underlying `MediaStreamTrack` has been stopped.
366
+ */
367
+ Ended = "ended",
368
+ /** The local track has been restarted with new constraints (e.g. device change). */
369
+ Restarted = "restarted",
370
+ /** Subscribed to a remote track. */
371
+ Subscribed = "subscribed",
372
+ /** Unsubscribed from a remote track. */
373
+ Unsubscribed = "unsubscribed",
374
+ /** An `HTMLMediaElement` has been attached to this track. */
375
+ ElementAttached = "elementAttached",
376
+ /** An `HTMLMediaElement` has been detached from this track. */
377
+ ElementDetached = "elementDetached",
378
+ /** Audio playback started successfully after calling `attach`. */
379
+ AudioPlaybackStarted = "audioPlaybackStarted",
380
+ /**
381
+ * Audio playback failed, typically due to browser autoplay policy.
382
+ *
383
+ * args: `(error?: Error)`
384
+ */
385
+ AudioPlaybackFailed = "audioPlaybackFailed",
386
+ /** Video playback started successfully after calling `attach`. */
387
+ VideoPlaybackStarted = "videoPlaybackStarted",
388
+ /**
389
+ * Video playback failed.
390
+ *
391
+ * args: `(error?: Error)`
392
+ */
393
+ VideoPlaybackFailed = "videoPlaybackFailed",
394
+ /**
395
+ * The visibility of the video element changed (adaptive stream).
396
+ *
397
+ * args: `(visible: boolean, track: RemoteVideoTrack)`
398
+ */
399
+ VisibilityChanged = "visibilityChanged",
400
+ /**
401
+ * The dimensions of the video element changed (adaptive stream).
402
+ *
403
+ * args: `(dimensions: { width: number; height: number }, track: RemoteVideoTrack)`
404
+ */
405
+ VideoDimensionsChanged = "videoDimensionsChanged",
406
+ /**
407
+ * The upstream (publisher to SFU) has been paused by the SFU due to
408
+ * lack of subscribers.
409
+ */
410
+ UpstreamPaused = "upstreamPaused",
411
+ /** The upstream has resumed after being paused. */
412
+ UpstreamResumed = "upstreamResumed",
413
+ /**
414
+ * Detected complete silence on an audio track after publishing.
415
+ * This may indicate a hardware issue.
416
+ */
417
+ AudioSilenceDetected = "audioSilenceDetected",
418
+ /**
419
+ * The stream state of this track changed (server paused/resumed forwarding).
420
+ * Only emitted on remote tracks.
421
+ *
422
+ * args: `(track: Track, streamState: StreamState)`
423
+ */
424
+ StreamStateChanged = "streamStateChanged",
425
+ /**
426
+ * Fired when a new time-sync update is available for a remote track.
427
+ * Provides the RTP timestamp and the corresponding local timestamp.
428
+ *
429
+ * args: `(update: { timestamp: number; rtpTimestamp: number })`
430
+ */
431
+ TimeSyncUpdate = "timeSyncUpdate"
432
+ }
@@ -0,0 +1,41 @@
1
+ export { Room } from './Room';
2
+ export type { RoomEvents } from './Room';
3
+ export { RoomEvent, ParticipantEvent, TrackEvent } from './events';
4
+ export { Participant, TrackPublication, SubscriptionStatus } from './participant/Participant';
5
+ export type { ParticipantEvents } from './participant/Participant';
6
+ export { LocalParticipant } from './participant/LocalParticipant';
7
+ export { RemoteParticipant } from './participant/RemoteParticipant';
8
+ export { LocalTrackPublication } from './participant/LocalTrackPublication';
9
+ export { RemoteTrackPublication } from './participant/RemoteTrackPublication';
10
+ export { Track } from './track/Track';
11
+ export type { TrackEvents, TrackDimensions } from './track/Track';
12
+ export { LocalTrack } from './track/LocalTrack';
13
+ export { LocalAudioTrack } from './track/LocalAudioTrack';
14
+ export { LocalVideoTrack } from './track/LocalVideoTrack';
15
+ export { RemoteTrack } from './track/RemoteTrack';
16
+ export { RemoteAudioTrack } from './track/RemoteAudioTrack';
17
+ export { RemoteVideoTrack } from './track/RemoteVideoTrack';
18
+ export { createLocalTracks, createLocalAudioTrack, createLocalVideoTrack, createLocalScreenTracks, } from './track/create';
19
+ export type { TrackProcessor, ProcessorOptions } from './track/processor/types';
20
+ export type { RoomOptions, RoomConnectOptions, InternalRoomConnectOptions, AdaptiveStreamSettings, } from './room/options';
21
+ export type { TrackPublishDefaults, TrackPublishOptions, DataPublishOptions, VideoCaptureOptions, AudioCaptureOptions, ScreenShareCaptureOptions, VideoEncoding, VideoResolution, VideoPresetOptions, AudioPreset, AudioOutputOptions, PublishCodecOptions, CreateLocalTracksOptions, ScalabilityMode, VideoCodec, BackupVideoCodec, AudioCodec, } from './track/options';
22
+ export { VideoPreset, BackupCodecPolicy, AudioPresets, VideoPresets, VideoPresets43, ScreenSharePresets, audioCodecs, videoCodecs, isBackupVideoCodec, defaultVideoCaptureOptions, defaultAudioCaptureOptions, defaultVideoEncoding, defaultScreenShareEncoding, videoSimulcastPresets, } from './track/options';
23
+ export { RoomState, TrackKind, TrackSource, VideoQuality, DisconnectReason, ParticipantState, ParticipantKind, ConnectionQuality, StreamState, AudioTrackFeature, } from './protocol/types';
24
+ export type { RoomInfo, ServerInfo, ParticipantInfo, ParticipantPermission, ParticipantTrackPermission, TrackInfo, DataTrackInfo, ActiveSpeaker, GroupInfo, JoinRequest, JoinResponse, SyncState, } from './protocol/types';
25
+ export { AxonError, ConnectionError, TimeoutError, ErrorCode } from './protocol/errors';
26
+ export { RpcError, MAX_RPC_PAYLOAD_BYTES } from './rpc';
27
+ export type { Message, ChatMessage, SendTextOptions, StreamTextOptions, StreamBytesOptions, SendFileOptions, BaseStreamInfo, ByteStreamInfo, TextStreamInfo, StreamSenderInfo, TextStreamHandler, ByteStreamHandler, PerformRpcParams, RpcInvocationData, } from './types';
28
+ export { TextStreamWriter, ByteStreamWriter, TextStreamReader, ByteStreamReader, } from './data-stream/DataStreamManager';
29
+ export { setLogLevel, setLogger, setLogExtension, LogLevel } from './utils/logger';
30
+ export type { LoggerInterface, LogExtension } from './utils/logger';
31
+ export { TypedEmitter } from './utils/typedEmitter';
32
+ export type { TypedEmitter as TypedEventEmitter } from './utils/typedEmitter';
33
+ export { isWeb, isMobile, isFireFox, isSafari, isSafariBased, isChromiumBased, isBrowserSupported, supportsAdaptiveStream, supportsDynacast, supportsAV1, supportsVP9, supportsAudioOutputSelection, compareVersions, getBrowser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, facingModeFromDeviceLabel, facingModeFromLocalTrack, createAudioAnalyser, } from './utils/browser';
34
+ export type { BrowserDetails, AudioAnalyserOptions } from './utils/browser';
35
+ export { MediaDeviceFailure } from './utils/deviceFailure';
36
+ export type { DeviceFailureKind } from './utils/deviceFailure';
37
+ export { DefaultReconnectPolicy } from './room/DefaultReconnectPolicy';
38
+ export type { ReconnectContext } from './room/DefaultReconnectPolicy';
39
+ export { ConnectionCheck, CheckStatus } from './connectionHelper/ConnectionCheck';
40
+ export type { CheckInfo } from './connectionHelper/ConnectionCheck';
41
+ export { VERSION, PROTOCOL_VERSION } from './version';