@whereby.com/core 0.2.0-beta.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.
@@ -0,0 +1,4252 @@
1
+ import * as _reduxjs_toolkit from '@reduxjs/toolkit';
2
+ import { PayloadAction, ActionCreatorWithPayload, AsyncThunkPayloadCreator, AsyncThunk, TypedStartListening, TypedAddListener, Selector } from '@reduxjs/toolkit';
3
+ import * as redux_thunk from 'redux-thunk';
4
+ import * as redux from 'redux';
5
+ import * as reselect from 'reselect';
6
+ import * as _whereby_jslib_media_src_utils_ServerSocket from '@whereby/jslib-media/src/utils/ServerSocket';
7
+ import _whereby_jslib_media_src_utils_ServerSocket__default, { ChatMessage as ChatMessage$1 } from '@whereby/jslib-media/src/utils/ServerSocket';
8
+ import { AsyncThunkFulfilledActionCreator } from '@reduxjs/toolkit/dist/createAsyncThunk';
9
+ import { getDeviceData } from '@whereby/jslib-media/src/webrtc/MediaDevices';
10
+ import RtcManagerDispatcher, { RtcStreamAddedPayload, RtcEvents, RtcManagerCreatedPayload } from '@whereby/jslib-media/src/webrtc/RtcManagerDispatcher';
11
+ import RtcManager from '@whereby/jslib-media/src/webrtc/RtcManager';
12
+ import { AxiosRequestConfig } from 'axios';
13
+ import EventEmitter from 'events';
14
+
15
+ type Json = string | number | boolean | null | Array<Json> | {
16
+ [key: string]: Json;
17
+ };
18
+ interface ResponseOptions {
19
+ data?: Json;
20
+ headers?: Record<string, unknown>;
21
+ status?: number;
22
+ statusText?: string;
23
+ url?: string | null;
24
+ }
25
+ declare class Response {
26
+ data: Json;
27
+ headers: Record<string, unknown>;
28
+ status: number;
29
+ statusText: string;
30
+ url: string | null;
31
+ constructor(initialValues?: ResponseOptions);
32
+ }
33
+
34
+ declare class EmbeddedFreeTierStatus {
35
+ isExhausted: boolean;
36
+ renewsAt: Date;
37
+ totalMinutesLimit: number;
38
+ totalMinutesUsed: number;
39
+ constructor({ isExhausted, renewsAt, totalMinutesLimit, totalMinutesUsed, }: {
40
+ isExhausted: boolean;
41
+ renewsAt: Date;
42
+ totalMinutesLimit: number;
43
+ totalMinutesUsed: number;
44
+ });
45
+ static fromJson(data: Record<string, unknown>): EmbeddedFreeTierStatus;
46
+ }
47
+
48
+ interface AccountProps {
49
+ basePlanId: string | null;
50
+ isDeactivated: boolean;
51
+ isOnTrial: boolean;
52
+ onTrialUntil: Date | null;
53
+ trialStatus: string | null;
54
+ embeddedFreeTierStatus: EmbeddedFreeTierStatus | null;
55
+ }
56
+ declare class Account {
57
+ basePlanId: string | null;
58
+ embeddedFreeTierStatus: EmbeddedFreeTierStatus | null;
59
+ isDeactivated: boolean;
60
+ isOnTrial: boolean;
61
+ onTrialUntil: Date | null;
62
+ trialStatus: string | null;
63
+ constructor({ basePlanId, embeddedFreeTierStatus, isDeactivated, isOnTrial, onTrialUntil, trialStatus, }: AccountProps);
64
+ static fromJson(data: Record<string, unknown>): Account;
65
+ }
66
+
67
+ interface OrganizationPermissionAction {
68
+ isAllowed: boolean;
69
+ isSupported: boolean;
70
+ }
71
+ interface FullOrganizationPermissions {
72
+ images: {
73
+ logoImageUrl: {
74
+ set: OrganizationPermissionAction;
75
+ reset: OrganizationPermissionAction;
76
+ };
77
+ roomBackgroundImageUrl: {
78
+ set: OrganizationPermissionAction;
79
+ reset: OrganizationPermissionAction;
80
+ };
81
+ roomKnockPageBackgroundImageUrl: {
82
+ set: OrganizationPermissionAction;
83
+ reset: OrganizationPermissionAction;
84
+ };
85
+ };
86
+ invitations: {
87
+ add: OrganizationPermissionAction;
88
+ delete: OrganizationPermissionAction;
89
+ list: OrganizationPermissionAction;
90
+ };
91
+ roles: {
92
+ set: OrganizationPermissionAction;
93
+ remove: OrganizationPermissionAction;
94
+ removeSelf: OrganizationPermissionAction;
95
+ list: OrganizationPermissionAction;
96
+ };
97
+ users: {
98
+ signUpWithoutInvitation: OrganizationPermissionAction;
99
+ };
100
+ rooms: {
101
+ customize: OrganizationPermissionAction;
102
+ customizeSelf: OrganizationPermissionAction;
103
+ list: OrganizationPermissionAction;
104
+ lock: OrganizationPermissionAction;
105
+ unclaim: OrganizationPermissionAction;
106
+ unclaimSelf: OrganizationPermissionAction;
107
+ };
108
+ subscriptions: {
109
+ add: OrganizationPermissionAction;
110
+ list: OrganizationPermissionAction;
111
+ payLatestInvoice: OrganizationPermissionAction;
112
+ updatePlan: OrganizationPermissionAction;
113
+ };
114
+ browserExtension: {
115
+ install: OrganizationPermissionAction;
116
+ };
117
+ }
118
+ type OrganizationPermissions = Partial<FullOrganizationPermissions>;
119
+ interface OrganizationLimits {
120
+ maxNumberOfInvitationsAndUsers: number | null;
121
+ maxNumberOfClaimedRooms: number | null;
122
+ maxRoomLimitPerOrganization: number | null;
123
+ trialMinutesLimit: number | null;
124
+ includedUnits: number | null;
125
+ }
126
+ interface OrganizationOnboardingSurvey {
127
+ name: string;
128
+ value: unknown;
129
+ }
130
+ type OrganizationPreferences = Record<string, boolean | string | null | number>;
131
+ declare class Organization {
132
+ static GLOBAL_ORGANIZATION_ID: string;
133
+ organizationId: string;
134
+ organizationName: string;
135
+ subdomain: string;
136
+ permissions: OrganizationPermissions;
137
+ limits: OrganizationLimits;
138
+ account: Account | null;
139
+ logoImageUrl: string | null;
140
+ roomBackgroundImageUrl: string | null;
141
+ roomBackgroundThumbnailUrl: string | null;
142
+ roomKnockPageBackgroundImageUrl: string | null;
143
+ roomKnockPageBackgroundThumbnailUrl: string | null;
144
+ preferences: OrganizationPreferences | null;
145
+ onboardingSurvey: OrganizationOnboardingSurvey | null;
146
+ type: string | null;
147
+ constructor(properties: {
148
+ account: Account | null;
149
+ organizationId: string;
150
+ organizationName: string;
151
+ subdomain: string;
152
+ permissions: OrganizationPermissions;
153
+ limits: OrganizationLimits;
154
+ logoImageUrl: string | null;
155
+ roomBackgroundImageUrl: string | null;
156
+ roomBackgroundThumbnailUrl: string | null;
157
+ roomKnockPageBackgroundImageUrl: string | null;
158
+ roomKnockPageBackgroundThumbnailUrl: string | null;
159
+ preferences: OrganizationPreferences | null;
160
+ onboardingSurvey: OrganizationOnboardingSurvey | null;
161
+ type: string | null;
162
+ });
163
+ static fromJson(data: Json): Organization;
164
+ }
165
+
166
+ interface RoomParticipantData {
167
+ displayName: string;
168
+ id: string;
169
+ stream?: MediaStream;
170
+ isAudioEnabled: boolean;
171
+ isVideoEnabled: boolean;
172
+ }
173
+ declare class RoomParticipant {
174
+ readonly displayName: string;
175
+ readonly id: string;
176
+ readonly stream?: MediaStream;
177
+ readonly isAudioEnabled: boolean;
178
+ readonly isLocalParticipant: boolean;
179
+ readonly isVideoEnabled: boolean;
180
+ constructor({ displayName, id, stream, isAudioEnabled, isVideoEnabled }: RoomParticipantData);
181
+ }
182
+ interface RemoteParticipantData {
183
+ newJoiner: boolean;
184
+ streams: string[];
185
+ }
186
+ type StreamState = "new_accept" | "to_accept" | "old_accept" | "done_accept" | "to_unaccept" | "done_unaccept" | "auto";
187
+ interface Stream {
188
+ id: string;
189
+ state: StreamState;
190
+ }
191
+ interface RemoteParticipant {
192
+ id: string;
193
+ displayName: string;
194
+ isAudioEnabled: boolean;
195
+ isVideoEnabled: boolean;
196
+ isLocalParticipant: boolean;
197
+ stream: (MediaStream & {
198
+ inboundId?: string;
199
+ }) | null;
200
+ streams: Stream[];
201
+ newJoiner: boolean;
202
+ presentationStream: (MediaStream & {
203
+ inboundId?: string;
204
+ }) | null;
205
+ }
206
+ declare class LocalParticipant extends RoomParticipant {
207
+ readonly isLocalParticipant = true;
208
+ constructor({ displayName, id, stream, isAudioEnabled, isVideoEnabled }: RoomParticipantData);
209
+ }
210
+ interface WaitingParticipant {
211
+ id: string;
212
+ displayName: string | null;
213
+ }
214
+ interface Screenshare {
215
+ participantId: string;
216
+ id: string;
217
+ hasAudioTrack: boolean;
218
+ stream?: MediaStream;
219
+ isLocal: boolean;
220
+ }
221
+
222
+ /**
223
+ * Reducer
224
+ */
225
+ interface WaitingParticipantsState {
226
+ waitingParticipants: WaitingParticipant[];
227
+ }
228
+ declare const waitingParticipantsSlice: _reduxjs_toolkit.Slice<WaitingParticipantsState, {}, "waitingParticipants", "waitingParticipants", _reduxjs_toolkit.SliceSelectors<WaitingParticipantsState>>;
229
+ /**
230
+ * Action creators
231
+ */
232
+ declare const doAcceptWaitingParticipant: (args: {
233
+ participantId: string;
234
+ }) => AppThunk<void>;
235
+ declare const doRejectWaitingParticipant: (args: {
236
+ participantId: string;
237
+ }) => AppThunk<void>;
238
+ /**
239
+ * Selectors
240
+ */
241
+ declare const selectWaitingParticipantsRaw: (state: RootState) => WaitingParticipantsState;
242
+ declare const selectWaitingParticipants: (state: RootState) => WaitingParticipant[];
243
+
244
+ /**
245
+ * Reducer
246
+ */
247
+ interface StreamingState {
248
+ isStreaming: boolean;
249
+ error: unknown;
250
+ startedAt?: number;
251
+ }
252
+ declare const streamingSlice: _reduxjs_toolkit.Slice<StreamingState, {
253
+ doHandleStreamingStarted: (state: {
254
+ isStreaming: boolean;
255
+ error: unknown;
256
+ startedAt?: number | undefined;
257
+ }) => {
258
+ isStreaming: true;
259
+ error: null;
260
+ startedAt: number;
261
+ };
262
+ doHandleStreamingStopped: (state: {
263
+ isStreaming: boolean;
264
+ error: unknown;
265
+ startedAt?: number | undefined;
266
+ }) => {
267
+ isStreaming: false;
268
+ error: unknown;
269
+ startedAt?: number | undefined;
270
+ };
271
+ }, "streaming", "streaming", _reduxjs_toolkit.SliceSelectors<StreamingState>>;
272
+ /**
273
+ * Action creators
274
+ */
275
+ declare const doHandleStreamingStarted: _reduxjs_toolkit.ActionCreatorWithoutPayload<"streaming/doHandleStreamingStarted">;
276
+ declare const doHandleStreamingStopped: _reduxjs_toolkit.ActionCreatorWithoutPayload<"streaming/doHandleStreamingStopped">;
277
+ /**
278
+ * Selectors
279
+ */
280
+ declare const selectStreamingRaw: (state: RootState) => StreamingState;
281
+
282
+ type RtcAnalyticsCustomEvent = {
283
+ actions: Array<ActionCreatorWithPayload<any> | AsyncThunkFulfilledActionCreator<any, any, ThunkConfig>> | null;
284
+ rtcEventName: string;
285
+ getValue: (state: RootState) => unknown;
286
+ getOutput: (value: unknown) => unknown;
287
+ };
288
+ declare const rtcAnalyticsCustomEvents: {
289
+ [key: string]: RtcAnalyticsCustomEvent;
290
+ };
291
+ /**
292
+ * Reducer
293
+ */
294
+ interface rtcAnalyticsState {
295
+ reportedValues: {
296
+ [key: string]: unknown;
297
+ };
298
+ }
299
+ declare const rtcAnalyticsSlice: _reduxjs_toolkit.Slice<rtcAnalyticsState, {
300
+ updateReportedValues(state: {
301
+ reportedValues: {
302
+ [x: string]: unknown;
303
+ };
304
+ }, action: PayloadAction<{
305
+ rtcEventName: string;
306
+ value: unknown;
307
+ }>): {
308
+ reportedValues: {
309
+ [x: string]: unknown;
310
+ };
311
+ };
312
+ }, "rtcAnalytics", "rtcAnalytics", _reduxjs_toolkit.SliceSelectors<rtcAnalyticsState>>;
313
+ declare const doRtcAnalyticsCustomEventsInitialize: (args: void) => AppThunk<void>;
314
+ /**
315
+ * Action creators
316
+ */
317
+ declare const updateReportedValues: ActionCreatorWithPayload<{
318
+ rtcEventName: string;
319
+ value: unknown;
320
+ }, "rtcAnalytics/updateReportedValues">;
321
+
322
+ interface LocalScreenshareState {
323
+ status: "" | "starting" | "active";
324
+ stream: MediaStream | null;
325
+ error: unknown | null;
326
+ }
327
+ /**
328
+ * Reducer
329
+ */
330
+ declare const localScreenshareSlice: _reduxjs_toolkit.Slice<LocalScreenshareState, {
331
+ stopScreenshare(state: {
332
+ status: "" | "starting" | "active";
333
+ stream: {
334
+ active: boolean;
335
+ id: string;
336
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
337
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
338
+ addTrack: (track: MediaStreamTrack) => void;
339
+ clone: () => MediaStream;
340
+ getAudioTracks: () => MediaStreamTrack[];
341
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
342
+ getTracks: () => MediaStreamTrack[];
343
+ getVideoTracks: () => MediaStreamTrack[];
344
+ removeTrack: (track: MediaStreamTrack) => void;
345
+ addEventListener: {
346
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
347
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
348
+ };
349
+ removeEventListener: {
350
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
351
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
352
+ };
353
+ dispatchEvent: (event: Event) => boolean;
354
+ } | null;
355
+ error: unknown | null;
356
+ }, action: PayloadAction<{
357
+ stream: MediaStream;
358
+ }>): {
359
+ status: "";
360
+ stream: null;
361
+ error: unknown | null;
362
+ };
363
+ }, "localScreenshare", "localScreenshare", _reduxjs_toolkit.SliceSelectors<LocalScreenshareState>>;
364
+ /**
365
+ * Action creators
366
+ */
367
+ declare const stopScreenshare: _reduxjs_toolkit.ActionCreatorWithPayload<{
368
+ stream: MediaStream;
369
+ }, "localScreenshare/stopScreenshare">;
370
+ declare const doStartScreenshare: _reduxjs_toolkit.AsyncThunk<{
371
+ stream: MediaStream;
372
+ }, undefined, ThunkConfig>;
373
+ declare const doStopScreenshare: (args: void) => AppThunk<void>;
374
+ /**
375
+ * Selectors
376
+ */
377
+ declare const selectLocalScreenshareRaw: (state: RootState) => LocalScreenshareState;
378
+ declare const selectLocalScreenshareStatus: (state: RootState) => "" | "starting" | "active";
379
+ declare const selectLocalScreenshareStream: (state: RootState) => MediaStream | null;
380
+
381
+ interface LocalParticipantState extends LocalParticipant {
382
+ isScreenSharing: boolean;
383
+ roleName: string;
384
+ }
385
+ declare const doEnableAudio: _reduxjs_toolkit.AsyncThunk<boolean, {
386
+ enabled: boolean;
387
+ }, ThunkConfig>;
388
+ declare const doEnableVideo: _reduxjs_toolkit.AsyncThunk<boolean, {
389
+ enabled: boolean;
390
+ }, ThunkConfig>;
391
+ declare const doSetDisplayName: _reduxjs_toolkit.AsyncThunk<string, {
392
+ displayName: string;
393
+ }, ThunkConfig>;
394
+ declare const localParticipantSlice: _reduxjs_toolkit.Slice<LocalParticipantState, {
395
+ doSetLocalParticipant: (state: {
396
+ isScreenSharing: boolean;
397
+ roleName: string;
398
+ isLocalParticipant: true;
399
+ displayName: string;
400
+ id: string;
401
+ stream?: {
402
+ active: boolean;
403
+ id: string;
404
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
405
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
406
+ addTrack: (track: MediaStreamTrack) => void;
407
+ clone: () => MediaStream;
408
+ getAudioTracks: () => MediaStreamTrack[];
409
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
410
+ getTracks: () => MediaStreamTrack[];
411
+ getVideoTracks: () => MediaStreamTrack[];
412
+ removeTrack: (track: MediaStreamTrack) => void;
413
+ addEventListener: {
414
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
415
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
416
+ };
417
+ removeEventListener: {
418
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
419
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
420
+ };
421
+ dispatchEvent: (event: Event) => boolean;
422
+ } | undefined;
423
+ isAudioEnabled: boolean;
424
+ isVideoEnabled: boolean;
425
+ }, action: PayloadAction<LocalParticipant>) => {
426
+ isLocalParticipant: true;
427
+ displayName: string;
428
+ id: string;
429
+ stream?: MediaStream | undefined;
430
+ isAudioEnabled: boolean;
431
+ isVideoEnabled: boolean;
432
+ isScreenSharing: boolean;
433
+ roleName: string;
434
+ };
435
+ }, "localParticipant", "localParticipant", _reduxjs_toolkit.SliceSelectors<LocalParticipantState>>;
436
+ declare const doSetLocalParticipant: _reduxjs_toolkit.ActionCreatorWithPayload<LocalParticipant, "localParticipant/doSetLocalParticipant">;
437
+ declare const selectLocalParticipantRaw: (state: RootState) => LocalParticipantState;
438
+ declare const selectSelfId: (state: RootState) => string;
439
+ declare const selectLocalParticipantRole: (state: RootState) => string;
440
+ declare const selectLocalParticipantIsScreenSharing: (state: RootState) => boolean;
441
+
442
+ /**
443
+ * Reducer
444
+ */
445
+ interface CloudRecordingState {
446
+ isRecording: boolean;
447
+ error: unknown;
448
+ status?: "recording" | "requested" | "error";
449
+ startedAt?: number;
450
+ }
451
+ declare const initialCloudRecordingState: CloudRecordingState;
452
+ declare const cloudRecordingSlice: _reduxjs_toolkit.Slice<CloudRecordingState, {
453
+ recordingRequestStarted: (state: {
454
+ isRecording: boolean;
455
+ error: unknown;
456
+ status?: "error" | "recording" | "requested" | undefined;
457
+ startedAt?: number | undefined;
458
+ }) => {
459
+ status: "requested";
460
+ isRecording: boolean;
461
+ error: unknown;
462
+ startedAt?: number | undefined;
463
+ };
464
+ }, "cloudRecording", "cloudRecording", _reduxjs_toolkit.SliceSelectors<CloudRecordingState>>;
465
+ /**
466
+ * Action creators
467
+ */
468
+ declare const recordingRequestStarted: _reduxjs_toolkit.ActionCreatorWithoutPayload<"cloudRecording/recordingRequestStarted">;
469
+ declare const doStartCloudRecording: (args: void) => AppThunk<void>;
470
+ declare const doStopCloudRecording: (args: void) => AppThunk<void>;
471
+ /**
472
+ * Selectors
473
+ */
474
+ declare const selectCloudRecordingRaw: (state: RootState) => CloudRecordingState;
475
+ declare const selectCloudRecordingStatus: (state: RootState) => "error" | "recording" | "requested" | undefined;
476
+ declare const selectCloudRecordingStartedAt: (state: RootState) => number | undefined;
477
+ declare const selectCloudRecordingError: (state: RootState) => unknown;
478
+ declare const selectIsCloudRecording: (state: RootState) => boolean;
479
+
480
+ type ChatMessage = Pick<ChatMessage$1, "senderId" | "timestamp" | "text">;
481
+ /**
482
+ * Reducer
483
+ */
484
+ interface ChatState {
485
+ chatMessages: ChatMessage[];
486
+ }
487
+ declare const chatSlice: _reduxjs_toolkit.Slice<ChatState, {}, "chat", "chat", _reduxjs_toolkit.SliceSelectors<ChatState>>;
488
+ /**
489
+ * Action creators
490
+ */
491
+ declare const doSendChatMessage: (args: {
492
+ text: string;
493
+ }) => AppThunk<void>;
494
+ /**
495
+ * Selectors
496
+ */
497
+ declare const selectChatRaw: (state: RootState) => ChatState;
498
+ declare const selectChatMessages: (state: RootState) => ChatMessage[];
499
+
500
+ /**
501
+ * Reducer
502
+ */
503
+ interface AppState {
504
+ wantsToJoin: boolean;
505
+ roomUrl: string | null;
506
+ roomName: string | null;
507
+ roomKey: string | null;
508
+ displayName: string | null;
509
+ sdkVersion: string | null;
510
+ externalId: string | null;
511
+ }
512
+ declare const appSlice: _reduxjs_toolkit.Slice<AppState, {
513
+ doAppJoin: (state: {
514
+ wantsToJoin: boolean;
515
+ roomUrl: string | null;
516
+ roomName: string | null;
517
+ roomKey: string | null;
518
+ displayName: string | null;
519
+ sdkVersion: string | null;
520
+ externalId: string | null;
521
+ }, action: PayloadAction<{
522
+ displayName: string;
523
+ localMediaOptions?: LocalMediaOptions;
524
+ roomKey: string | null;
525
+ roomUrl: string;
526
+ sdkVersion: string;
527
+ externalId: string | null;
528
+ }>) => {
529
+ roomName: string;
530
+ wantsToJoin: true;
531
+ displayName: string;
532
+ localMediaOptions?: LocalMediaOptions | undefined;
533
+ roomKey: string | null;
534
+ roomUrl: string;
535
+ sdkVersion: string;
536
+ externalId: string | null;
537
+ };
538
+ appLeft: (state: {
539
+ wantsToJoin: boolean;
540
+ roomUrl: string | null;
541
+ roomName: string | null;
542
+ roomKey: string | null;
543
+ displayName: string | null;
544
+ sdkVersion: string | null;
545
+ externalId: string | null;
546
+ }) => {
547
+ wantsToJoin: false;
548
+ roomUrl: string | null;
549
+ roomName: string | null;
550
+ roomKey: string | null;
551
+ displayName: string | null;
552
+ sdkVersion: string | null;
553
+ externalId: string | null;
554
+ };
555
+ setRoomKey: (state: {
556
+ wantsToJoin: boolean;
557
+ roomUrl: string | null;
558
+ roomName: string | null;
559
+ roomKey: string | null;
560
+ displayName: string | null;
561
+ sdkVersion: string | null;
562
+ externalId: string | null;
563
+ }, action: PayloadAction<string>) => {
564
+ roomKey: string;
565
+ wantsToJoin: boolean;
566
+ roomUrl: string | null;
567
+ roomName: string | null;
568
+ displayName: string | null;
569
+ sdkVersion: string | null;
570
+ externalId: string | null;
571
+ };
572
+ }, "app", "app", _reduxjs_toolkit.SliceSelectors<AppState>>;
573
+ /**
574
+ * Action creators
575
+ */
576
+ declare const doAppJoin: _reduxjs_toolkit.ActionCreatorWithPayload<{
577
+ displayName: string;
578
+ localMediaOptions?: LocalMediaOptions | undefined;
579
+ roomKey: string | null;
580
+ roomUrl: string;
581
+ sdkVersion: string;
582
+ externalId: string | null;
583
+ }, "app/doAppJoin">;
584
+ declare const appLeft: _reduxjs_toolkit.ActionCreatorWithoutPayload<"app/appLeft">;
585
+ declare const setRoomKey: _reduxjs_toolkit.ActionCreatorWithPayload<string, "app/setRoomKey">;
586
+ /**
587
+ * Selectors
588
+ */
589
+ declare const selectAppRaw: (state: RootState) => AppState;
590
+ declare const selectAppWantsToJoin: (state: RootState) => boolean;
591
+ declare const selectAppRoomName: (state: RootState) => string | null;
592
+ declare const selectAppRoomUrl: (state: RootState) => string | null;
593
+ declare const selectAppRoomKey: (state: RootState) => string | null;
594
+ declare const selectAppDisplayName: (state: RootState) => string | null;
595
+ declare const selectAppSdkVersion: (state: RootState) => string | null;
596
+ declare const selectAppExternalId: (state: RootState) => string | null;
597
+
598
+ type HttpClientRequestConfig = AxiosRequestConfig | {
599
+ [key: string]: unknown;
600
+ };
601
+ interface IHttpClient {
602
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
603
+ }
604
+ /**
605
+ * Class used for making http calls. This is just a pure
606
+ * wrapper around the http lib that we decide to use,
607
+ * so that we can switch implementations.
608
+ */
609
+ declare class HttpClient implements IHttpClient {
610
+ _baseUrl: string;
611
+ /**
612
+ * Creates an HttpClient instance.
613
+ *
614
+ * @param {string} [baseUrl] - The base URL where all requests are made.
615
+ */
616
+ constructor({ baseUrl }: {
617
+ baseUrl: string;
618
+ });
619
+ private _requestAxios;
620
+ /**
621
+ * Wrapper for the axios API
622
+ *
623
+ * @param {string} url - Required. URL (appended to base URL) where API call will be made
624
+ * @param {object} options - Required. Contains the data needed for the fetch API
625
+ * @return {Promise<Response>} - A promise which will return a Response object (https://developer.mozilla.org/en-US/docs/Web/API/Response)
626
+ */
627
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
628
+ }
629
+
630
+ /**
631
+ * ApiClient for doing multipart/form-data requests.
632
+ */
633
+ declare class MultipartHttpClient implements IHttpClient {
634
+ _httpClient: IHttpClient;
635
+ constructor({ httpClient }: {
636
+ httpClient: IHttpClient;
637
+ });
638
+ /**
639
+ * Convert the provided object to a FormData object containing the same keys and values.
640
+ * @param {object} data - the data to convert.
641
+ * @returns {FormData}
642
+ */
643
+ static dataToFormData(data: Record<string, string>): FormData;
644
+ /**
645
+ * Request a resource using multipart/form-data encoding.
646
+ *
647
+ * @param {string} url - the url to request
648
+ * @param {object} options - Required. Contains the data needed for the fetch API
649
+ * @return {Promise<Response>} - A promise which will return a Response object (https://developer.mozilla.org/en-US/docs/Web/API/Response)
650
+ */
651
+ request(url: string, options?: HttpClientRequestConfig): Promise<Response>;
652
+ }
653
+
654
+ interface CredentialsOptions {
655
+ uuid: string;
656
+ hmac: string;
657
+ userId?: string;
658
+ }
659
+ declare class Credentials {
660
+ credentials: {
661
+ uuid: CredentialsOptions["uuid"];
662
+ };
663
+ hmac: CredentialsOptions["hmac"];
664
+ userId: CredentialsOptions["userId"];
665
+ constructor(uuid: CredentialsOptions["uuid"], hmac: CredentialsOptions["hmac"], userId?: CredentialsOptions["userId"]);
666
+ toJson(): Json;
667
+ static fromJson(json: Json): Credentials;
668
+ }
669
+
670
+ interface AuthenticatedHttpClientOptions {
671
+ httpClient: HttpClient;
672
+ fetchDeviceCredentials: () => Promise<Credentials | null>;
673
+ }
674
+ declare class AuthenticatedHttpClient {
675
+ private _httpClient;
676
+ private _fetchDeviceCredentials;
677
+ constructor({ httpClient, fetchDeviceCredentials }: AuthenticatedHttpClientOptions);
678
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
679
+ }
680
+ interface ApiClientOptions {
681
+ baseUrl?: string;
682
+ fetchDeviceCredentials?: AuthenticatedHttpClientOptions["fetchDeviceCredentials"];
683
+ }
684
+ /**
685
+ * Class used for all Whereby API calls.
686
+ */
687
+ declare class ApiClient {
688
+ authenticatedHttpClient: AuthenticatedHttpClient;
689
+ authenticatedFormDataHttpClient: MultipartHttpClient;
690
+ /**
691
+ * Create an ApiClient instance.
692
+ */
693
+ constructor({ baseUrl, fetchDeviceCredentials, }?: ApiClientOptions);
694
+ /**
695
+ * Wrapper for the fetch API
696
+ */
697
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
698
+ /**
699
+ * Performs a multipart request where data is multipart/form-data encoded.
700
+ */
701
+ requestMultipart(url: string, options: HttpClientRequestConfig): Promise<Response>;
702
+ }
703
+
704
+ /**
705
+ * Related to device calls needed to obtain credentials
706
+ */
707
+ declare class DeviceService {
708
+ _apiClient: ApiClient;
709
+ constructor({ apiClient }: {
710
+ apiClient: ApiClient;
711
+ });
712
+ /**
713
+ * Get's the device credentials needed for most of the other API services
714
+ *
715
+ * @return {Promise} A promise which is fulfilled or failed based on the
716
+ * response.
717
+ */
718
+ getCredentials(): Promise<Credentials | null>;
719
+ }
720
+
721
+ interface AbstractStore {
722
+ loadOrDefault(defaultValue: Json): Promise<Json>;
723
+ save(value: Json): Promise<void>;
724
+ }
725
+
726
+ declare class CredentialsService extends EventEmitter {
727
+ _deviceService: DeviceService;
728
+ _credentialsStore: AbstractStore;
729
+ credentialsPromise?: Promise<Credentials | null>;
730
+ /**
731
+ * Service to manage Whereby's Rest API credentials.
732
+ *
733
+ * @param {ObjectStore} credentialsStore - Store to manage the credentials.
734
+ */
735
+ constructor({ deviceService, credentialsStore, }: {
736
+ deviceService: DeviceService;
737
+ credentialsStore: AbstractStore;
738
+ });
739
+ static create({ baseUrl, storeName, storeType, }: {
740
+ baseUrl: string;
741
+ storeName?: string;
742
+ storeType?: "localStorage" | "chromeStorage";
743
+ }): CredentialsService;
744
+ /**
745
+ * Contacts the REST API to get new credentials. DO NOT USE directly, call getCredentials() instead.
746
+ *
747
+ * @see getCredentials
748
+ * @returns {Promise.<Credentials>} - Promise that resolves with the credentials.
749
+ */
750
+ _fetchNewCredentialsFromApi(): Promise<Credentials | null>;
751
+ /**
752
+ * Returns the current credentials without triggering an API request to get new ones.
753
+ * If no credentials are currently available it will return null.
754
+ *
755
+ * @returns {?Credentials} - The credentials currently in use, null otherwise.
756
+ */
757
+ getCurrentCredentials(): Promise<Credentials | null>;
758
+ /**
759
+ * Returns a promise that will contain the credentials for this client.
760
+ * If no credentials are available in local storage, new ones will be fetched from the server.
761
+ *
762
+ * @returns {Promise.<Credentials>} - Promise that resolves with the credentials.
763
+ */
764
+ getCredentials(): Promise<Credentials | null>;
765
+ /**
766
+ * Saves new credentials which replace the existing ones and abort any pending request to get new ones.
767
+ *
768
+ * @param {Credentials} credentials - New credentials to store.
769
+ */
770
+ saveCredentials(credentials: Credentials): Promise<Credentials>;
771
+ /**
772
+ * It will set the userId for the current credentials.
773
+ *
774
+ * @param userId - The user id to set.
775
+ */
776
+ setUserId(userId: string | null): Promise<void>;
777
+ }
778
+
779
+ type FetchOrganizationFunction = () => Promise<Organization | undefined>;
780
+ /**
781
+ * Class used for all Whereby organization API calls.
782
+ */
783
+ declare class OrganizationApiClient {
784
+ private _apiClient;
785
+ private _fetchOrganization;
786
+ /**
787
+ * Create an OrganizationApiClient instance.
788
+ *
789
+ * @param {Object} options - The options for the OrganizationApiClient.
790
+ * @param {ApiClient} [options.apiClient] - The apiClient to use.
791
+ * @param {Function} [options.fetchOrganization] - function that returns a promise with the organization.
792
+ */
793
+ constructor({ apiClient, fetchOrganization, }: {
794
+ apiClient: ApiClient;
795
+ fetchOrganization?: FetchOrganizationFunction;
796
+ });
797
+ _callRequestMethod(method: "request" | "requestMultipart", url: string, options: HttpClientRequestConfig): Promise<Response>;
798
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
799
+ requestMultipart(url: string, options: HttpClientRequestConfig): Promise<Response>;
800
+ }
801
+
802
+ type UserConsentAction = "accepted" | "rejected" | null;
803
+ type ConsentGrantRequest = {
804
+ readonly consentRevisionId: string;
805
+ readonly action: UserConsentAction;
806
+ };
807
+
808
+ declare class OrganizationService {
809
+ _apiClient: ApiClient;
810
+ constructor({ apiClient }: {
811
+ apiClient: ApiClient;
812
+ });
813
+ /**
814
+ * Creates an organization.
815
+ */
816
+ createOrganization({ organizationName, subdomain, owner, }: {
817
+ organizationName: string;
818
+ subdomain: string;
819
+ owner: {
820
+ email: string;
821
+ displayName: string;
822
+ verificationCode: string;
823
+ consents?: ReadonlyArray<ConsentGrantRequest>;
824
+ } | {
825
+ idToken: string;
826
+ displayName: string;
827
+ consents?: ReadonlyArray<ConsentGrantRequest>;
828
+ };
829
+ }): Promise<string>;
830
+ /**
831
+ * Retrieves the organization based on the subdomain.
832
+ */
833
+ getOrganizationBySubdomain(subdomain: string): Promise<Organization | null>;
834
+ /**
835
+ * Retrieves the organization based on the organizationId.
836
+ *
837
+ * Note: This endpoint should only be used to retrieve an organization when the device is linked
838
+ * to a user in that organization. Use getOrganizationBySubdomain instead if you just want the information
839
+ * about an organization that is mapped to a given subdomain.
840
+ */
841
+ getOrganizationByOrganizationId(organizationId: string): Promise<Organization | null>;
842
+ /**
843
+ * Retrieves the organizations that contain a user
844
+ * matching provided the email+code or phoneNumber+code
845
+ * combination.
846
+ */
847
+ getOrganizationsByContactPoint(options: {
848
+ email: string;
849
+ code: string;
850
+ } | {
851
+ phoneNumber: string;
852
+ code: string;
853
+ }): Promise<ReadonlyArray<Organization>>;
854
+ /**
855
+ * Retrieves the organizations that contain a user
856
+ * matching provided the idToken
857
+ */
858
+ getOrganizationsByIdToken({ idToken }: {
859
+ idToken: string;
860
+ }): Promise<ReadonlyArray<Organization>>;
861
+ /**
862
+ * Retrieves the organizations containing a user
863
+ * with either the email or phoneNumber matching the logged in user.
864
+ *
865
+ * This is useful for showing the possible organization that the current
866
+ * user could log in to.
867
+ */
868
+ getOrganizationsByLoggedInUser(): Promise<ReadonlyArray<Organization>>;
869
+ /**
870
+ * Checks if a subdomain is available and verifies its format.
871
+ */
872
+ getSubdomainAvailability(subdomain: string): Promise<{
873
+ status: string;
874
+ }>;
875
+ /**
876
+ * Updates preferences of the organization.
877
+ */
878
+ updatePreferences({ organizationId, preferences, }: {
879
+ organizationId: string;
880
+ preferences: OrganizationPreferences;
881
+ }): Promise<undefined>;
882
+ /**
883
+ * Delete organization
884
+ */
885
+ deleteOrganization({ organizationId }: {
886
+ organizationId: string;
887
+ }): Promise<undefined>;
888
+ }
889
+
890
+ declare class OrganizationServiceCache {
891
+ private _organizationService;
892
+ private _subdomain;
893
+ private _organizationPromise;
894
+ constructor({ organizationService, subdomain }: {
895
+ organizationService: OrganizationService;
896
+ subdomain: string;
897
+ });
898
+ initOrganization(): Promise<void>;
899
+ fetchOrganization(): Promise<Organization | null>;
900
+ }
901
+
902
+ declare class Room {
903
+ readonly isLocked: boolean;
904
+ constructor(properties?: {});
905
+ }
906
+
907
+ /**
908
+ * Service for talking to the Room related APIs
909
+ */
910
+ declare class RoomService {
911
+ /**
912
+ * @param {object} organizationApiClient (required)
913
+ */
914
+ constructor({ organizationApiClient }: {
915
+ organizationApiClient: any;
916
+ });
917
+ /**
918
+ * Gets the list of visited rooms
919
+ *
920
+ * @param {Object} args
921
+ * @param {Array<string>} [types=["team"]] - The type of rooms that should be fetched.
922
+ * @param {Array<string>} [fields=["meeting"]] - The fields of room that should be fetched.
923
+ * @returns {Promise<array>} - It will resolve with an array.
924
+ */
925
+ getRooms({ types, fields }?: {
926
+ types: any;
927
+ fields?: never[] | undefined;
928
+ }): any;
929
+ /**
930
+ * Gets the specified room.
931
+ *
932
+ * Currently information is implicitly alluded to via the servers
933
+ * `/room/roomName` response. This method patches the data
934
+ * tempoarily, until the day it comes back from the server.
935
+ *
936
+ * @returns {Promise<Room>} - It will resolve with the Room.
937
+ */
938
+ getRoom({ roomName, fields }: {
939
+ roomName: string;
940
+ fields?: Array<string>;
941
+ }): Promise<Room>;
942
+ /**
943
+ * Claims the specified room.
944
+ *
945
+ * @param {Object} args
946
+ * @param {String} args.roomName - The roomName to claim
947
+ * @param {String} args.type - The type of room to claim
948
+ * @param {String} args.mode - The optional mode of room to claim
949
+ * @param {[Boolean]} args.isLocked - The optional lock status of room to claim
950
+ * @returns {Promise} - It will resolve with undefined.
951
+ */
952
+ claimRoom({ roomName, type, mode, isLocked }: {
953
+ roomName: any;
954
+ type: any;
955
+ mode: any;
956
+ isLocked: any;
957
+ }): any;
958
+ /**
959
+ * Unclaims the specified room.
960
+ *
961
+ * @param {string} roomName - the room name to unclaim.
962
+ * @returns {Promise.<undefined>} - It will resolve with undefined.
963
+ */
964
+ unclaimRoom(roomName: any): any;
965
+ /**
966
+ * Changes the name of the room
967
+ *
968
+ * @param {Object} args
969
+ * @param {string} args.roomName - The name of the room to rename
970
+ * @param {string} args.newRoomName - The new name
971
+ * @returns {Promise<undefined>} - It will resolve if the room was renamed, reject for all other cases
972
+ */
973
+ renameRoom({ roomName, newRoomName }: {
974
+ roomName: any;
975
+ newRoomName: any;
976
+ }): any;
977
+ /**
978
+ * Changes the room mode (experimental)
979
+ *
980
+ * @param {string} roomName - The name of the room to change mode of
981
+ * @param {string} mode - The name of mode to set, currently only "group" is supported
982
+ * @returns {Promise<undefined>} - It will resolve if mode was changed, rejects for all other cases
983
+ */
984
+ changeMode({ roomName, mode }: {
985
+ roomName: any;
986
+ mode: any;
987
+ }): any;
988
+ /**
989
+ * Updates the room prefs
990
+ *
991
+ * @param {string} roomName - The name of the room to change mode of
992
+ * @param {object} preferences - The prefs you want to update and their values
993
+ * @returns {Promise<undefined>} - It will resolve if updated, rejects for all other cases
994
+ */
995
+ updatePreferences({ roomName, preferences }: {
996
+ roomName: any;
997
+ preferences: any;
998
+ }): any;
999
+ /**
1000
+ * Updates the protected room prefs
1001
+ *
1002
+ * @param {string} roomName - The name of the room to change mode of
1003
+ * @param {object} preferences - The protected prefs you want to update and their values
1004
+ * @returns {Promise<undefined>} - It will resolve if updated, rejects for all other cases
1005
+ */
1006
+ updateProtectedPreferences({ roomName, preferences }: {
1007
+ roomName: any;
1008
+ preferences: any;
1009
+ }): any;
1010
+ getRoomPermissions(roomName: any, { roomKey }?: {
1011
+ roomKey: any;
1012
+ }): any;
1013
+ /**
1014
+ * Gets the specified room metrics
1015
+ *
1016
+ * @param {Object} args
1017
+ * @param {string} args.roomName - The name of the room to get metrics from.
1018
+ * @param {string} args.metrics - Comma-separated list of metrics to include.
1019
+ * @param {string} args.from (optional) - Start time (inclusive) to count from in
1020
+ * ISO format. Defaults to counting from the start of time.
1021
+ * @param {string} args.to (optional) - End time (exclusive) to count up to in
1022
+ * ISO format. Defaults to counting up to the current time.
1023
+ * @returns {Promise<Object>} - It will resolve with the requested metrics.
1024
+ */
1025
+ getRoomMetrics({ roomName, metrics, from, to }: {
1026
+ roomName: any;
1027
+ metrics: any;
1028
+ from: any;
1029
+ to: any;
1030
+ }): any;
1031
+ /**
1032
+ * Changes the room type
1033
+ *
1034
+ * @param {Object} args
1035
+ * @param {string} args.roomName - The name of the room to change mode of
1036
+ * @param {"personal" | "personal_xl"} args.type - Room type that should be set
1037
+ * @returns {Promise<undefined>} - It will resolve if type was changed, rejects for all other cases
1038
+ */
1039
+ changeType({ roomName, type }: {
1040
+ roomName: any;
1041
+ type: any;
1042
+ }): any;
1043
+ /** Gets a Forest campaign social image
1044
+ *
1045
+ * @param {Object} args
1046
+ * @param {string} args.roomName - The name of the room to get metrics from.
1047
+ * @param {number} args.count - Number to be displayed in the image as tree count.
1048
+ * @returns {Promise<string>} - It will resolve with the image url.
1049
+ */
1050
+ getForestSocialImage({ roomName, count }: {
1051
+ roomName: any;
1052
+ count: any;
1053
+ }): any;
1054
+ }
1055
+
1056
+ /**
1057
+ * Reducer
1058
+ */
1059
+ interface DeviceCredentialsState {
1060
+ isFetching: boolean;
1061
+ data?: Credentials | null;
1062
+ }
1063
+ declare const deviceCredentialsSlice: _reduxjs_toolkit.Slice<DeviceCredentialsState, {}, "deviceCredentials", "deviceCredentials", _reduxjs_toolkit.SliceSelectors<DeviceCredentialsState>>;
1064
+ /**
1065
+ * Action creators
1066
+ */
1067
+ declare const doGetDeviceCredentials: _reduxjs_toolkit.AsyncThunk<Credentials | null | undefined, undefined, ThunkConfig>;
1068
+ /**
1069
+ * Selectors
1070
+ */
1071
+ declare const selectDeviceCredentialsRaw: (state: RootState) => DeviceCredentialsState;
1072
+ declare const selectHasFetchedDeviceCredentials: (state: RootState) => boolean;
1073
+ declare const selectDeviceId: (state: RootState) => string | undefined;
1074
+ /**
1075
+ * Reactors
1076
+ */
1077
+ declare const selectShouldFetchDeviceCredentials: ((state: {
1078
+ app: AppState;
1079
+ chat: ChatState;
1080
+ cloudRecording: CloudRecordingState;
1081
+ deviceCredentials: DeviceCredentialsState;
1082
+ localMedia: LocalMediaState;
1083
+ localParticipant: LocalParticipantState;
1084
+ localScreenshare: LocalScreenshareState;
1085
+ organization: OrganizationState;
1086
+ remoteParticipants: RemoteParticipantState;
1087
+ roomConnection: RoomConnectionState;
1088
+ rtcAnalytics: rtcAnalyticsState;
1089
+ rtcConnection: RtcConnectionState;
1090
+ signalConnection: SignalConnectionState;
1091
+ streaming: StreamingState;
1092
+ waitingParticipants: WaitingParticipantsState;
1093
+ }) => boolean) & {
1094
+ clearCache: () => void;
1095
+ resultsCount: () => number;
1096
+ resetResultsCount: () => void;
1097
+ } & {
1098
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: DeviceCredentialsState) => boolean;
1099
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: DeviceCredentialsState) => boolean) & {
1100
+ clearCache: () => void;
1101
+ resultsCount: () => number;
1102
+ resetResultsCount: () => void;
1103
+ };
1104
+ lastResult: () => boolean;
1105
+ dependencies: [(state: {
1106
+ app: AppState;
1107
+ chat: ChatState;
1108
+ cloudRecording: CloudRecordingState;
1109
+ deviceCredentials: DeviceCredentialsState;
1110
+ localMedia: LocalMediaState;
1111
+ localParticipant: LocalParticipantState;
1112
+ localScreenshare: LocalScreenshareState;
1113
+ organization: OrganizationState;
1114
+ remoteParticipants: RemoteParticipantState;
1115
+ roomConnection: RoomConnectionState;
1116
+ rtcAnalytics: rtcAnalyticsState;
1117
+ rtcConnection: RtcConnectionState;
1118
+ signalConnection: SignalConnectionState;
1119
+ streaming: StreamingState;
1120
+ waitingParticipants: WaitingParticipantsState;
1121
+ }) => boolean, (state: RootState) => DeviceCredentialsState];
1122
+ recomputations: () => number;
1123
+ resetRecomputations: () => void;
1124
+ dependencyRecomputations: () => number;
1125
+ resetDependencyRecomputations: () => void;
1126
+ } & {
1127
+ argsMemoize: typeof reselect.weakMapMemoize;
1128
+ memoize: typeof reselect.weakMapMemoize;
1129
+ };
1130
+
1131
+ interface DebouncedFunction {
1132
+ (...args: any[]): void;
1133
+ }
1134
+
1135
+ type LocalMediaOptions = {
1136
+ audio: boolean;
1137
+ video: boolean;
1138
+ };
1139
+ /**
1140
+ * Reducer
1141
+ */
1142
+ interface LocalMediaState {
1143
+ busyDeviceIds: string[];
1144
+ cameraDeviceError?: unknown;
1145
+ cameraEnabled: boolean;
1146
+ currentCameraDeviceId?: string;
1147
+ currentMicrophoneDeviceId?: string;
1148
+ devices: MediaDeviceInfo[];
1149
+ isSettingCameraDevice: boolean;
1150
+ isSettingMicrophoneDevice: boolean;
1151
+ isTogglingCamera: boolean;
1152
+ microphoneDeviceError?: unknown;
1153
+ microphoneEnabled: boolean;
1154
+ options?: LocalMediaOptions;
1155
+ status: "" | "stopped" | "starting" | "started" | "error";
1156
+ startError?: unknown;
1157
+ stream?: MediaStream;
1158
+ isSwitchingStream: boolean;
1159
+ onDeviceChange?: () => void;
1160
+ }
1161
+ declare const initialLocalMediaState: LocalMediaState;
1162
+ declare const localMediaSlice: _reduxjs_toolkit.Slice<LocalMediaState, {
1163
+ deviceBusy(state: {
1164
+ busyDeviceIds: string[];
1165
+ cameraDeviceError?: unknown;
1166
+ cameraEnabled: boolean;
1167
+ currentCameraDeviceId?: string | undefined;
1168
+ currentMicrophoneDeviceId?: string | undefined;
1169
+ devices: {
1170
+ deviceId: string;
1171
+ groupId: string;
1172
+ kind: MediaDeviceKind;
1173
+ label: string;
1174
+ toJSON: () => any;
1175
+ }[];
1176
+ isSettingCameraDevice: boolean;
1177
+ isSettingMicrophoneDevice: boolean;
1178
+ isTogglingCamera: boolean;
1179
+ microphoneDeviceError?: unknown;
1180
+ microphoneEnabled: boolean;
1181
+ options?: {
1182
+ audio: boolean;
1183
+ video: boolean;
1184
+ } | undefined;
1185
+ status: "" | "stopped" | "starting" | "started" | "error";
1186
+ startError?: unknown;
1187
+ stream?: {
1188
+ active: boolean;
1189
+ id: string;
1190
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1191
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1192
+ addTrack: (track: MediaStreamTrack) => void;
1193
+ clone: () => MediaStream;
1194
+ getAudioTracks: () => MediaStreamTrack[];
1195
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1196
+ getTracks: () => MediaStreamTrack[];
1197
+ getVideoTracks: () => MediaStreamTrack[];
1198
+ removeTrack: (track: MediaStreamTrack) => void;
1199
+ addEventListener: {
1200
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1201
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1202
+ };
1203
+ removeEventListener: {
1204
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1205
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1206
+ };
1207
+ dispatchEvent: (event: Event) => boolean;
1208
+ } | undefined;
1209
+ isSwitchingStream: boolean;
1210
+ onDeviceChange?: (() => void) | undefined;
1211
+ }, action: PayloadAction<{
1212
+ deviceId: string;
1213
+ }>): {
1214
+ busyDeviceIds: string[];
1215
+ cameraDeviceError?: unknown;
1216
+ cameraEnabled: boolean;
1217
+ currentCameraDeviceId?: string | undefined;
1218
+ currentMicrophoneDeviceId?: string | undefined;
1219
+ devices: {
1220
+ deviceId: string;
1221
+ groupId: string;
1222
+ kind: MediaDeviceKind;
1223
+ label: string;
1224
+ toJSON: () => any;
1225
+ }[];
1226
+ isSettingCameraDevice: boolean;
1227
+ isSettingMicrophoneDevice: boolean;
1228
+ isTogglingCamera: boolean;
1229
+ microphoneDeviceError?: unknown;
1230
+ microphoneEnabled: boolean;
1231
+ options?: {
1232
+ audio: boolean;
1233
+ video: boolean;
1234
+ } | undefined;
1235
+ status: "" | "stopped" | "starting" | "started" | "error";
1236
+ startError?: unknown;
1237
+ stream?: {
1238
+ active: boolean;
1239
+ id: string;
1240
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1241
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1242
+ addTrack: (track: MediaStreamTrack) => void;
1243
+ clone: () => MediaStream;
1244
+ getAudioTracks: () => MediaStreamTrack[];
1245
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1246
+ getTracks: () => MediaStreamTrack[];
1247
+ getVideoTracks: () => MediaStreamTrack[];
1248
+ removeTrack: (track: MediaStreamTrack) => void;
1249
+ addEventListener: {
1250
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1251
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1252
+ };
1253
+ removeEventListener: {
1254
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1255
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1256
+ };
1257
+ dispatchEvent: (event: Event) => boolean;
1258
+ } | undefined;
1259
+ isSwitchingStream: boolean;
1260
+ onDeviceChange?: (() => void) | undefined;
1261
+ };
1262
+ toggleCameraEnabled(state: {
1263
+ busyDeviceIds: string[];
1264
+ cameraDeviceError?: unknown;
1265
+ cameraEnabled: boolean;
1266
+ currentCameraDeviceId?: string | undefined;
1267
+ currentMicrophoneDeviceId?: string | undefined;
1268
+ devices: {
1269
+ deviceId: string;
1270
+ groupId: string;
1271
+ kind: MediaDeviceKind;
1272
+ label: string;
1273
+ toJSON: () => any;
1274
+ }[];
1275
+ isSettingCameraDevice: boolean;
1276
+ isSettingMicrophoneDevice: boolean;
1277
+ isTogglingCamera: boolean;
1278
+ microphoneDeviceError?: unknown;
1279
+ microphoneEnabled: boolean;
1280
+ options?: {
1281
+ audio: boolean;
1282
+ video: boolean;
1283
+ } | undefined;
1284
+ status: "" | "stopped" | "starting" | "started" | "error";
1285
+ startError?: unknown;
1286
+ stream?: {
1287
+ active: boolean;
1288
+ id: string;
1289
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1290
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1291
+ addTrack: (track: MediaStreamTrack) => void;
1292
+ clone: () => MediaStream;
1293
+ getAudioTracks: () => MediaStreamTrack[];
1294
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1295
+ getTracks: () => MediaStreamTrack[];
1296
+ getVideoTracks: () => MediaStreamTrack[];
1297
+ removeTrack: (track: MediaStreamTrack) => void;
1298
+ addEventListener: {
1299
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1300
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1301
+ };
1302
+ removeEventListener: {
1303
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1304
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1305
+ };
1306
+ dispatchEvent: (event: Event) => boolean;
1307
+ } | undefined;
1308
+ isSwitchingStream: boolean;
1309
+ onDeviceChange?: (() => void) | undefined;
1310
+ }, action: PayloadAction<{
1311
+ enabled?: boolean;
1312
+ }>): {
1313
+ cameraEnabled: boolean;
1314
+ busyDeviceIds: string[];
1315
+ cameraDeviceError?: unknown;
1316
+ currentCameraDeviceId?: string | undefined;
1317
+ currentMicrophoneDeviceId?: string | undefined;
1318
+ devices: {
1319
+ deviceId: string;
1320
+ groupId: string;
1321
+ kind: MediaDeviceKind;
1322
+ label: string;
1323
+ toJSON: () => any;
1324
+ }[];
1325
+ isSettingCameraDevice: boolean;
1326
+ isSettingMicrophoneDevice: boolean;
1327
+ isTogglingCamera: boolean;
1328
+ microphoneDeviceError?: unknown;
1329
+ microphoneEnabled: boolean;
1330
+ options?: {
1331
+ audio: boolean;
1332
+ video: boolean;
1333
+ } | undefined;
1334
+ status: "" | "stopped" | "starting" | "started" | "error";
1335
+ startError?: unknown;
1336
+ stream?: {
1337
+ active: boolean;
1338
+ id: string;
1339
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1340
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1341
+ addTrack: (track: MediaStreamTrack) => void;
1342
+ clone: () => MediaStream;
1343
+ getAudioTracks: () => MediaStreamTrack[];
1344
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1345
+ getTracks: () => MediaStreamTrack[];
1346
+ getVideoTracks: () => MediaStreamTrack[];
1347
+ removeTrack: (track: MediaStreamTrack) => void;
1348
+ addEventListener: {
1349
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1350
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1351
+ };
1352
+ removeEventListener: {
1353
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1354
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1355
+ };
1356
+ dispatchEvent: (event: Event) => boolean;
1357
+ } | undefined;
1358
+ isSwitchingStream: boolean;
1359
+ onDeviceChange?: (() => void) | undefined;
1360
+ };
1361
+ setCurrentCameraDeviceId(state: {
1362
+ busyDeviceIds: string[];
1363
+ cameraDeviceError?: unknown;
1364
+ cameraEnabled: boolean;
1365
+ currentCameraDeviceId?: string | undefined;
1366
+ currentMicrophoneDeviceId?: string | undefined;
1367
+ devices: {
1368
+ deviceId: string;
1369
+ groupId: string;
1370
+ kind: MediaDeviceKind;
1371
+ label: string;
1372
+ toJSON: () => any;
1373
+ }[];
1374
+ isSettingCameraDevice: boolean;
1375
+ isSettingMicrophoneDevice: boolean;
1376
+ isTogglingCamera: boolean;
1377
+ microphoneDeviceError?: unknown;
1378
+ microphoneEnabled: boolean;
1379
+ options?: {
1380
+ audio: boolean;
1381
+ video: boolean;
1382
+ } | undefined;
1383
+ status: "" | "stopped" | "starting" | "started" | "error";
1384
+ startError?: unknown;
1385
+ stream?: {
1386
+ active: boolean;
1387
+ id: string;
1388
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1389
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1390
+ addTrack: (track: MediaStreamTrack) => void;
1391
+ clone: () => MediaStream;
1392
+ getAudioTracks: () => MediaStreamTrack[];
1393
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1394
+ getTracks: () => MediaStreamTrack[];
1395
+ getVideoTracks: () => MediaStreamTrack[];
1396
+ removeTrack: (track: MediaStreamTrack) => void;
1397
+ addEventListener: {
1398
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1399
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1400
+ };
1401
+ removeEventListener: {
1402
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1403
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1404
+ };
1405
+ dispatchEvent: (event: Event) => boolean;
1406
+ } | undefined;
1407
+ isSwitchingStream: boolean;
1408
+ onDeviceChange?: (() => void) | undefined;
1409
+ }, action: PayloadAction<{
1410
+ deviceId?: string;
1411
+ }>): {
1412
+ currentCameraDeviceId: string | undefined;
1413
+ busyDeviceIds: string[];
1414
+ cameraDeviceError?: unknown;
1415
+ cameraEnabled: boolean;
1416
+ currentMicrophoneDeviceId?: string | undefined;
1417
+ devices: {
1418
+ deviceId: string;
1419
+ groupId: string;
1420
+ kind: MediaDeviceKind;
1421
+ label: string;
1422
+ toJSON: () => any;
1423
+ }[];
1424
+ isSettingCameraDevice: boolean;
1425
+ isSettingMicrophoneDevice: boolean;
1426
+ isTogglingCamera: boolean;
1427
+ microphoneDeviceError?: unknown;
1428
+ microphoneEnabled: boolean;
1429
+ options?: {
1430
+ audio: boolean;
1431
+ video: boolean;
1432
+ } | undefined;
1433
+ status: "" | "stopped" | "starting" | "started" | "error";
1434
+ startError?: unknown;
1435
+ stream?: {
1436
+ active: boolean;
1437
+ id: string;
1438
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1439
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1440
+ addTrack: (track: MediaStreamTrack) => void;
1441
+ clone: () => MediaStream;
1442
+ getAudioTracks: () => MediaStreamTrack[];
1443
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1444
+ getTracks: () => MediaStreamTrack[];
1445
+ getVideoTracks: () => MediaStreamTrack[];
1446
+ removeTrack: (track: MediaStreamTrack) => void;
1447
+ addEventListener: {
1448
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1449
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1450
+ };
1451
+ removeEventListener: {
1452
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1453
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1454
+ };
1455
+ dispatchEvent: (event: Event) => boolean;
1456
+ } | undefined;
1457
+ isSwitchingStream: boolean;
1458
+ onDeviceChange?: (() => void) | undefined;
1459
+ };
1460
+ toggleMicrophoneEnabled(state: {
1461
+ busyDeviceIds: string[];
1462
+ cameraDeviceError?: unknown;
1463
+ cameraEnabled: boolean;
1464
+ currentCameraDeviceId?: string | undefined;
1465
+ currentMicrophoneDeviceId?: string | undefined;
1466
+ devices: {
1467
+ deviceId: string;
1468
+ groupId: string;
1469
+ kind: MediaDeviceKind;
1470
+ label: string;
1471
+ toJSON: () => any;
1472
+ }[];
1473
+ isSettingCameraDevice: boolean;
1474
+ isSettingMicrophoneDevice: boolean;
1475
+ isTogglingCamera: boolean;
1476
+ microphoneDeviceError?: unknown;
1477
+ microphoneEnabled: boolean;
1478
+ options?: {
1479
+ audio: boolean;
1480
+ video: boolean;
1481
+ } | undefined;
1482
+ status: "" | "stopped" | "starting" | "started" | "error";
1483
+ startError?: unknown;
1484
+ stream?: {
1485
+ active: boolean;
1486
+ id: string;
1487
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1488
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1489
+ addTrack: (track: MediaStreamTrack) => void;
1490
+ clone: () => MediaStream;
1491
+ getAudioTracks: () => MediaStreamTrack[];
1492
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1493
+ getTracks: () => MediaStreamTrack[];
1494
+ getVideoTracks: () => MediaStreamTrack[];
1495
+ removeTrack: (track: MediaStreamTrack) => void;
1496
+ addEventListener: {
1497
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1498
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1499
+ };
1500
+ removeEventListener: {
1501
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1502
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1503
+ };
1504
+ dispatchEvent: (event: Event) => boolean;
1505
+ } | undefined;
1506
+ isSwitchingStream: boolean;
1507
+ onDeviceChange?: (() => void) | undefined;
1508
+ }, action: PayloadAction<{
1509
+ enabled?: boolean;
1510
+ }>): {
1511
+ microphoneEnabled: boolean;
1512
+ busyDeviceIds: string[];
1513
+ cameraDeviceError?: unknown;
1514
+ cameraEnabled: boolean;
1515
+ currentCameraDeviceId?: string | undefined;
1516
+ currentMicrophoneDeviceId?: string | undefined;
1517
+ devices: {
1518
+ deviceId: string;
1519
+ groupId: string;
1520
+ kind: MediaDeviceKind;
1521
+ label: string;
1522
+ toJSON: () => any;
1523
+ }[];
1524
+ isSettingCameraDevice: boolean;
1525
+ isSettingMicrophoneDevice: boolean;
1526
+ isTogglingCamera: boolean;
1527
+ microphoneDeviceError?: unknown;
1528
+ options?: {
1529
+ audio: boolean;
1530
+ video: boolean;
1531
+ } | undefined;
1532
+ status: "" | "stopped" | "starting" | "started" | "error";
1533
+ startError?: unknown;
1534
+ stream?: {
1535
+ active: boolean;
1536
+ id: string;
1537
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1538
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1539
+ addTrack: (track: MediaStreamTrack) => void;
1540
+ clone: () => MediaStream;
1541
+ getAudioTracks: () => MediaStreamTrack[];
1542
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1543
+ getTracks: () => MediaStreamTrack[];
1544
+ getVideoTracks: () => MediaStreamTrack[];
1545
+ removeTrack: (track: MediaStreamTrack) => void;
1546
+ addEventListener: {
1547
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1548
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1549
+ };
1550
+ removeEventListener: {
1551
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1552
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1553
+ };
1554
+ dispatchEvent: (event: Event) => boolean;
1555
+ } | undefined;
1556
+ isSwitchingStream: boolean;
1557
+ onDeviceChange?: (() => void) | undefined;
1558
+ };
1559
+ setCurrentMicrophoneDeviceId(state: {
1560
+ busyDeviceIds: string[];
1561
+ cameraDeviceError?: unknown;
1562
+ cameraEnabled: boolean;
1563
+ currentCameraDeviceId?: string | undefined;
1564
+ currentMicrophoneDeviceId?: string | undefined;
1565
+ devices: {
1566
+ deviceId: string;
1567
+ groupId: string;
1568
+ kind: MediaDeviceKind;
1569
+ label: string;
1570
+ toJSON: () => any;
1571
+ }[];
1572
+ isSettingCameraDevice: boolean;
1573
+ isSettingMicrophoneDevice: boolean;
1574
+ isTogglingCamera: boolean;
1575
+ microphoneDeviceError?: unknown;
1576
+ microphoneEnabled: boolean;
1577
+ options?: {
1578
+ audio: boolean;
1579
+ video: boolean;
1580
+ } | undefined;
1581
+ status: "" | "stopped" | "starting" | "started" | "error";
1582
+ startError?: unknown;
1583
+ stream?: {
1584
+ active: boolean;
1585
+ id: string;
1586
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1587
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1588
+ addTrack: (track: MediaStreamTrack) => void;
1589
+ clone: () => MediaStream;
1590
+ getAudioTracks: () => MediaStreamTrack[];
1591
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1592
+ getTracks: () => MediaStreamTrack[];
1593
+ getVideoTracks: () => MediaStreamTrack[];
1594
+ removeTrack: (track: MediaStreamTrack) => void;
1595
+ addEventListener: {
1596
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1597
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1598
+ };
1599
+ removeEventListener: {
1600
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1601
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1602
+ };
1603
+ dispatchEvent: (event: Event) => boolean;
1604
+ } | undefined;
1605
+ isSwitchingStream: boolean;
1606
+ onDeviceChange?: (() => void) | undefined;
1607
+ }, action: PayloadAction<{
1608
+ deviceId?: string;
1609
+ }>): {
1610
+ currentMicrophoneDeviceId: string | undefined;
1611
+ busyDeviceIds: string[];
1612
+ cameraDeviceError?: unknown;
1613
+ cameraEnabled: boolean;
1614
+ currentCameraDeviceId?: string | undefined;
1615
+ devices: {
1616
+ deviceId: string;
1617
+ groupId: string;
1618
+ kind: MediaDeviceKind;
1619
+ label: string;
1620
+ toJSON: () => any;
1621
+ }[];
1622
+ isSettingCameraDevice: boolean;
1623
+ isSettingMicrophoneDevice: boolean;
1624
+ isTogglingCamera: boolean;
1625
+ microphoneDeviceError?: unknown;
1626
+ microphoneEnabled: boolean;
1627
+ options?: {
1628
+ audio: boolean;
1629
+ video: boolean;
1630
+ } | undefined;
1631
+ status: "" | "stopped" | "starting" | "started" | "error";
1632
+ startError?: unknown;
1633
+ stream?: {
1634
+ active: boolean;
1635
+ id: string;
1636
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1637
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1638
+ addTrack: (track: MediaStreamTrack) => void;
1639
+ clone: () => MediaStream;
1640
+ getAudioTracks: () => MediaStreamTrack[];
1641
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1642
+ getTracks: () => MediaStreamTrack[];
1643
+ getVideoTracks: () => MediaStreamTrack[];
1644
+ removeTrack: (track: MediaStreamTrack) => void;
1645
+ addEventListener: {
1646
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1647
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1648
+ };
1649
+ removeEventListener: {
1650
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1651
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1652
+ };
1653
+ dispatchEvent: (event: Event) => boolean;
1654
+ } | undefined;
1655
+ isSwitchingStream: boolean;
1656
+ onDeviceChange?: (() => void) | undefined;
1657
+ };
1658
+ setDevices(state: {
1659
+ busyDeviceIds: string[];
1660
+ cameraDeviceError?: unknown;
1661
+ cameraEnabled: boolean;
1662
+ currentCameraDeviceId?: string | undefined;
1663
+ currentMicrophoneDeviceId?: string | undefined;
1664
+ devices: {
1665
+ deviceId: string;
1666
+ groupId: string;
1667
+ kind: MediaDeviceKind;
1668
+ label: string;
1669
+ toJSON: () => any;
1670
+ }[];
1671
+ isSettingCameraDevice: boolean;
1672
+ isSettingMicrophoneDevice: boolean;
1673
+ isTogglingCamera: boolean;
1674
+ microphoneDeviceError?: unknown;
1675
+ microphoneEnabled: boolean;
1676
+ options?: {
1677
+ audio: boolean;
1678
+ video: boolean;
1679
+ } | undefined;
1680
+ status: "" | "stopped" | "starting" | "started" | "error";
1681
+ startError?: unknown;
1682
+ stream?: {
1683
+ active: boolean;
1684
+ id: string;
1685
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1686
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1687
+ addTrack: (track: MediaStreamTrack) => void;
1688
+ clone: () => MediaStream;
1689
+ getAudioTracks: () => MediaStreamTrack[];
1690
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1691
+ getTracks: () => MediaStreamTrack[];
1692
+ getVideoTracks: () => MediaStreamTrack[];
1693
+ removeTrack: (track: MediaStreamTrack) => void;
1694
+ addEventListener: {
1695
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1696
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1697
+ };
1698
+ removeEventListener: {
1699
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1700
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1701
+ };
1702
+ dispatchEvent: (event: Event) => boolean;
1703
+ } | undefined;
1704
+ isSwitchingStream: boolean;
1705
+ onDeviceChange?: (() => void) | undefined;
1706
+ }, action: PayloadAction<{
1707
+ devices: MediaDeviceInfo[];
1708
+ }>): {
1709
+ devices: MediaDeviceInfo[];
1710
+ busyDeviceIds: string[];
1711
+ cameraDeviceError?: unknown;
1712
+ cameraEnabled: boolean;
1713
+ currentCameraDeviceId?: string | undefined;
1714
+ currentMicrophoneDeviceId?: string | undefined;
1715
+ isSettingCameraDevice: boolean;
1716
+ isSettingMicrophoneDevice: boolean;
1717
+ isTogglingCamera: boolean;
1718
+ microphoneDeviceError?: unknown;
1719
+ microphoneEnabled: boolean;
1720
+ options?: {
1721
+ audio: boolean;
1722
+ video: boolean;
1723
+ } | undefined;
1724
+ status: "" | "stopped" | "starting" | "started" | "error";
1725
+ startError?: unknown;
1726
+ stream?: {
1727
+ active: boolean;
1728
+ id: string;
1729
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1730
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1731
+ addTrack: (track: MediaStreamTrack) => void;
1732
+ clone: () => MediaStream;
1733
+ getAudioTracks: () => MediaStreamTrack[];
1734
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1735
+ getTracks: () => MediaStreamTrack[];
1736
+ getVideoTracks: () => MediaStreamTrack[];
1737
+ removeTrack: (track: MediaStreamTrack) => void;
1738
+ addEventListener: {
1739
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1740
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1741
+ };
1742
+ removeEventListener: {
1743
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1744
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1745
+ };
1746
+ dispatchEvent: (event: Event) => boolean;
1747
+ } | undefined;
1748
+ isSwitchingStream: boolean;
1749
+ onDeviceChange?: (() => void) | undefined;
1750
+ };
1751
+ setLocalMediaStream(state: {
1752
+ busyDeviceIds: string[];
1753
+ cameraDeviceError?: unknown;
1754
+ cameraEnabled: boolean;
1755
+ currentCameraDeviceId?: string | undefined;
1756
+ currentMicrophoneDeviceId?: string | undefined;
1757
+ devices: {
1758
+ deviceId: string;
1759
+ groupId: string;
1760
+ kind: MediaDeviceKind;
1761
+ label: string;
1762
+ toJSON: () => any;
1763
+ }[];
1764
+ isSettingCameraDevice: boolean;
1765
+ isSettingMicrophoneDevice: boolean;
1766
+ isTogglingCamera: boolean;
1767
+ microphoneDeviceError?: unknown;
1768
+ microphoneEnabled: boolean;
1769
+ options?: {
1770
+ audio: boolean;
1771
+ video: boolean;
1772
+ } | undefined;
1773
+ status: "" | "stopped" | "starting" | "started" | "error";
1774
+ startError?: unknown;
1775
+ stream?: {
1776
+ active: boolean;
1777
+ id: string;
1778
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1779
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1780
+ addTrack: (track: MediaStreamTrack) => void;
1781
+ clone: () => MediaStream;
1782
+ getAudioTracks: () => MediaStreamTrack[];
1783
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1784
+ getTracks: () => MediaStreamTrack[];
1785
+ getVideoTracks: () => MediaStreamTrack[];
1786
+ removeTrack: (track: MediaStreamTrack) => void;
1787
+ addEventListener: {
1788
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1789
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1790
+ };
1791
+ removeEventListener: {
1792
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1793
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1794
+ };
1795
+ dispatchEvent: (event: Event) => boolean;
1796
+ } | undefined;
1797
+ isSwitchingStream: boolean;
1798
+ onDeviceChange?: (() => void) | undefined;
1799
+ }, action: PayloadAction<{
1800
+ stream: MediaStream;
1801
+ }>): {
1802
+ stream: MediaStream;
1803
+ busyDeviceIds: string[];
1804
+ cameraDeviceError?: unknown;
1805
+ cameraEnabled: boolean;
1806
+ currentCameraDeviceId?: string | undefined;
1807
+ currentMicrophoneDeviceId?: string | undefined;
1808
+ devices: {
1809
+ deviceId: string;
1810
+ groupId: string;
1811
+ kind: MediaDeviceKind;
1812
+ label: string;
1813
+ toJSON: () => any;
1814
+ }[];
1815
+ isSettingCameraDevice: boolean;
1816
+ isSettingMicrophoneDevice: boolean;
1817
+ isTogglingCamera: boolean;
1818
+ microphoneDeviceError?: unknown;
1819
+ microphoneEnabled: boolean;
1820
+ options?: {
1821
+ audio: boolean;
1822
+ video: boolean;
1823
+ } | undefined;
1824
+ status: "" | "stopped" | "starting" | "started" | "error";
1825
+ startError?: unknown;
1826
+ isSwitchingStream: boolean;
1827
+ onDeviceChange?: (() => void) | undefined;
1828
+ };
1829
+ setLocalMediaOptions(state: {
1830
+ busyDeviceIds: string[];
1831
+ cameraDeviceError?: unknown;
1832
+ cameraEnabled: boolean;
1833
+ currentCameraDeviceId?: string | undefined;
1834
+ currentMicrophoneDeviceId?: string | undefined;
1835
+ devices: {
1836
+ deviceId: string;
1837
+ groupId: string;
1838
+ kind: MediaDeviceKind;
1839
+ label: string;
1840
+ toJSON: () => any;
1841
+ }[];
1842
+ isSettingCameraDevice: boolean;
1843
+ isSettingMicrophoneDevice: boolean;
1844
+ isTogglingCamera: boolean;
1845
+ microphoneDeviceError?: unknown;
1846
+ microphoneEnabled: boolean;
1847
+ options?: {
1848
+ audio: boolean;
1849
+ video: boolean;
1850
+ } | undefined;
1851
+ status: "" | "stopped" | "starting" | "started" | "error";
1852
+ startError?: unknown;
1853
+ stream?: {
1854
+ active: boolean;
1855
+ id: string;
1856
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1857
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1858
+ addTrack: (track: MediaStreamTrack) => void;
1859
+ clone: () => MediaStream;
1860
+ getAudioTracks: () => MediaStreamTrack[];
1861
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1862
+ getTracks: () => MediaStreamTrack[];
1863
+ getVideoTracks: () => MediaStreamTrack[];
1864
+ removeTrack: (track: MediaStreamTrack) => void;
1865
+ addEventListener: {
1866
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1867
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1868
+ };
1869
+ removeEventListener: {
1870
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1871
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1872
+ };
1873
+ dispatchEvent: (event: Event) => boolean;
1874
+ } | undefined;
1875
+ isSwitchingStream: boolean;
1876
+ onDeviceChange?: (() => void) | undefined;
1877
+ }, action: PayloadAction<{
1878
+ options: LocalMediaOptions;
1879
+ }>): {
1880
+ options: LocalMediaOptions;
1881
+ busyDeviceIds: string[];
1882
+ cameraDeviceError?: unknown;
1883
+ cameraEnabled: boolean;
1884
+ currentCameraDeviceId?: string | undefined;
1885
+ currentMicrophoneDeviceId?: string | undefined;
1886
+ devices: {
1887
+ deviceId: string;
1888
+ groupId: string;
1889
+ kind: MediaDeviceKind;
1890
+ label: string;
1891
+ toJSON: () => any;
1892
+ }[];
1893
+ isSettingCameraDevice: boolean;
1894
+ isSettingMicrophoneDevice: boolean;
1895
+ isTogglingCamera: boolean;
1896
+ microphoneDeviceError?: unknown;
1897
+ microphoneEnabled: boolean;
1898
+ status: "" | "stopped" | "starting" | "started" | "error";
1899
+ startError?: unknown;
1900
+ stream?: {
1901
+ active: boolean;
1902
+ id: string;
1903
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1904
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1905
+ addTrack: (track: MediaStreamTrack) => void;
1906
+ clone: () => MediaStream;
1907
+ getAudioTracks: () => MediaStreamTrack[];
1908
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1909
+ getTracks: () => MediaStreamTrack[];
1910
+ getVideoTracks: () => MediaStreamTrack[];
1911
+ removeTrack: (track: MediaStreamTrack) => void;
1912
+ addEventListener: {
1913
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1914
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1915
+ };
1916
+ removeEventListener: {
1917
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1918
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1919
+ };
1920
+ dispatchEvent: (event: Event) => boolean;
1921
+ } | undefined;
1922
+ isSwitchingStream: boolean;
1923
+ onDeviceChange?: (() => void) | undefined;
1924
+ };
1925
+ localMediaStopped(state: {
1926
+ busyDeviceIds: string[];
1927
+ cameraDeviceError?: unknown;
1928
+ cameraEnabled: boolean;
1929
+ currentCameraDeviceId?: string | undefined;
1930
+ currentMicrophoneDeviceId?: string | undefined;
1931
+ devices: {
1932
+ deviceId: string;
1933
+ groupId: string;
1934
+ kind: MediaDeviceKind;
1935
+ label: string;
1936
+ toJSON: () => any;
1937
+ }[];
1938
+ isSettingCameraDevice: boolean;
1939
+ isSettingMicrophoneDevice: boolean;
1940
+ isTogglingCamera: boolean;
1941
+ microphoneDeviceError?: unknown;
1942
+ microphoneEnabled: boolean;
1943
+ options?: {
1944
+ audio: boolean;
1945
+ video: boolean;
1946
+ } | undefined;
1947
+ status: "" | "stopped" | "starting" | "started" | "error";
1948
+ startError?: unknown;
1949
+ stream?: {
1950
+ active: boolean;
1951
+ id: string;
1952
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1953
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
1954
+ addTrack: (track: MediaStreamTrack) => void;
1955
+ clone: () => MediaStream;
1956
+ getAudioTracks: () => MediaStreamTrack[];
1957
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
1958
+ getTracks: () => MediaStreamTrack[];
1959
+ getVideoTracks: () => MediaStreamTrack[];
1960
+ removeTrack: (track: MediaStreamTrack) => void;
1961
+ addEventListener: {
1962
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
1963
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
1964
+ };
1965
+ removeEventListener: {
1966
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
1967
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
1968
+ };
1969
+ dispatchEvent: (event: Event) => boolean;
1970
+ } | undefined;
1971
+ isSwitchingStream: boolean;
1972
+ onDeviceChange?: (() => void) | undefined;
1973
+ }): {
1974
+ status: "stopped";
1975
+ stream: undefined;
1976
+ busyDeviceIds: string[];
1977
+ cameraDeviceError?: unknown;
1978
+ cameraEnabled: boolean;
1979
+ currentCameraDeviceId?: string | undefined;
1980
+ currentMicrophoneDeviceId?: string | undefined;
1981
+ devices: {
1982
+ deviceId: string;
1983
+ groupId: string;
1984
+ kind: MediaDeviceKind;
1985
+ label: string;
1986
+ toJSON: () => any;
1987
+ }[];
1988
+ isSettingCameraDevice: boolean;
1989
+ isSettingMicrophoneDevice: boolean;
1990
+ isTogglingCamera: boolean;
1991
+ microphoneDeviceError?: unknown;
1992
+ microphoneEnabled: boolean;
1993
+ options?: {
1994
+ audio: boolean;
1995
+ video: boolean;
1996
+ } | undefined;
1997
+ startError?: unknown;
1998
+ isSwitchingStream: boolean;
1999
+ onDeviceChange?: (() => void) | undefined;
2000
+ };
2001
+ localStreamMetadataUpdated(state: {
2002
+ busyDeviceIds: string[];
2003
+ cameraDeviceError?: unknown;
2004
+ cameraEnabled: boolean;
2005
+ currentCameraDeviceId?: string | undefined;
2006
+ currentMicrophoneDeviceId?: string | undefined;
2007
+ devices: {
2008
+ deviceId: string;
2009
+ groupId: string;
2010
+ kind: MediaDeviceKind;
2011
+ label: string;
2012
+ toJSON: () => any;
2013
+ }[];
2014
+ isSettingCameraDevice: boolean;
2015
+ isSettingMicrophoneDevice: boolean;
2016
+ isTogglingCamera: boolean;
2017
+ microphoneDeviceError?: unknown;
2018
+ microphoneEnabled: boolean;
2019
+ options?: {
2020
+ audio: boolean;
2021
+ video: boolean;
2022
+ } | undefined;
2023
+ status: "" | "stopped" | "starting" | "started" | "error";
2024
+ startError?: unknown;
2025
+ stream?: {
2026
+ active: boolean;
2027
+ id: string;
2028
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2029
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2030
+ addTrack: (track: MediaStreamTrack) => void;
2031
+ clone: () => MediaStream;
2032
+ getAudioTracks: () => MediaStreamTrack[];
2033
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2034
+ getTracks: () => MediaStreamTrack[];
2035
+ getVideoTracks: () => MediaStreamTrack[];
2036
+ removeTrack: (track: MediaStreamTrack) => void;
2037
+ addEventListener: {
2038
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2039
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2040
+ };
2041
+ removeEventListener: {
2042
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2043
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2044
+ };
2045
+ dispatchEvent: (event: Event) => boolean;
2046
+ } | undefined;
2047
+ isSwitchingStream: boolean;
2048
+ onDeviceChange?: (() => void) | undefined;
2049
+ }, action: PayloadAction<ReturnType<typeof getDeviceData>>): {
2050
+ currentCameraDeviceId: string;
2051
+ currentMicrophoneDeviceId: string;
2052
+ busyDeviceIds: string[];
2053
+ cameraDeviceError?: unknown;
2054
+ cameraEnabled: boolean;
2055
+ devices: {
2056
+ deviceId: string;
2057
+ groupId: string;
2058
+ kind: MediaDeviceKind;
2059
+ label: string;
2060
+ toJSON: () => any;
2061
+ }[];
2062
+ isSettingCameraDevice: boolean;
2063
+ isSettingMicrophoneDevice: boolean;
2064
+ isTogglingCamera: boolean;
2065
+ microphoneDeviceError?: unknown;
2066
+ microphoneEnabled: boolean;
2067
+ options?: {
2068
+ audio: boolean;
2069
+ video: boolean;
2070
+ } | undefined;
2071
+ status: "" | "stopped" | "starting" | "started" | "error";
2072
+ startError?: unknown;
2073
+ stream?: {
2074
+ active: boolean;
2075
+ id: string;
2076
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2077
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2078
+ addTrack: (track: MediaStreamTrack) => void;
2079
+ clone: () => MediaStream;
2080
+ getAudioTracks: () => MediaStreamTrack[];
2081
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2082
+ getTracks: () => MediaStreamTrack[];
2083
+ getVideoTracks: () => MediaStreamTrack[];
2084
+ removeTrack: (track: MediaStreamTrack) => void;
2085
+ addEventListener: {
2086
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2087
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2088
+ };
2089
+ removeEventListener: {
2090
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2091
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2092
+ };
2093
+ dispatchEvent: (event: Event) => boolean;
2094
+ } | undefined;
2095
+ isSwitchingStream: boolean;
2096
+ onDeviceChange?: (() => void) | undefined;
2097
+ };
2098
+ }, "localMedia", "localMedia", _reduxjs_toolkit.SliceSelectors<LocalMediaState>>;
2099
+ /**
2100
+ * Action creators
2101
+ */
2102
+ declare const deviceBusy: _reduxjs_toolkit.ActionCreatorWithPayload<{
2103
+ deviceId: string;
2104
+ }, "localMedia/deviceBusy">;
2105
+ declare const setCurrentCameraDeviceId: _reduxjs_toolkit.ActionCreatorWithPayload<{
2106
+ deviceId?: string | undefined;
2107
+ }, "localMedia/setCurrentCameraDeviceId">;
2108
+ declare const setCurrentMicrophoneDeviceId: _reduxjs_toolkit.ActionCreatorWithPayload<{
2109
+ deviceId?: string | undefined;
2110
+ }, "localMedia/setCurrentMicrophoneDeviceId">;
2111
+ declare const toggleCameraEnabled: _reduxjs_toolkit.ActionCreatorWithPayload<{
2112
+ enabled?: boolean | undefined;
2113
+ }, "localMedia/toggleCameraEnabled">;
2114
+ declare const toggleMicrophoneEnabled: _reduxjs_toolkit.ActionCreatorWithPayload<{
2115
+ enabled?: boolean | undefined;
2116
+ }, "localMedia/toggleMicrophoneEnabled">;
2117
+ declare const setLocalMediaOptions: _reduxjs_toolkit.ActionCreatorWithPayload<{
2118
+ options: LocalMediaOptions;
2119
+ }, "localMedia/setLocalMediaOptions">;
2120
+ declare const setLocalMediaStream: _reduxjs_toolkit.ActionCreatorWithPayload<{
2121
+ stream: MediaStream;
2122
+ }, "localMedia/setLocalMediaStream">;
2123
+ declare const localMediaStopped: _reduxjs_toolkit.ActionCreatorWithoutPayload<"localMedia/localMediaStopped">;
2124
+ declare const localStreamMetadataUpdated: _reduxjs_toolkit.ActionCreatorWithPayload<{
2125
+ audio: {
2126
+ deviceId: string;
2127
+ label: string;
2128
+ kind: string;
2129
+ };
2130
+ video: {
2131
+ deviceId: string;
2132
+ label: string;
2133
+ kind: string;
2134
+ };
2135
+ }, "localMedia/localStreamMetadataUpdated">;
2136
+ declare const doToggleCamera: _reduxjs_toolkit.AsyncThunk<undefined, undefined, ThunkConfig>;
2137
+ declare const doSetDevice: _reduxjs_toolkit.AsyncThunk<{
2138
+ replacedTracks: MediaStreamTrack[] | undefined;
2139
+ }, {
2140
+ audio: boolean;
2141
+ video: boolean;
2142
+ }, ThunkConfig>;
2143
+ declare const doUpdateDeviceList: _reduxjs_toolkit.AsyncThunk<{
2144
+ devices: MediaDeviceInfo[];
2145
+ }, undefined, ThunkConfig>;
2146
+ declare const doSwitchLocalStream: _reduxjs_toolkit.AsyncThunk<{
2147
+ replacedTracks: MediaStreamTrack[] | undefined;
2148
+ } | undefined, {
2149
+ audioId?: string | undefined;
2150
+ videoId?: string | undefined;
2151
+ }, ThunkConfig>;
2152
+ declare const doStartLocalMedia: _reduxjs_toolkit.AsyncThunk<{
2153
+ stream: MediaStream;
2154
+ onDeviceChange: DebouncedFunction;
2155
+ }, LocalMediaOptions | MediaStream, ThunkConfig>;
2156
+ declare const doStopLocalMedia: (args: void) => AppThunk<void>;
2157
+ /**
2158
+ * Selectors
2159
+ */
2160
+ declare const selectBusyDeviceIds: (state: RootState) => string[];
2161
+ declare const selectCameraDeviceError: (state: RootState) => unknown;
2162
+ declare const selectCurrentCameraDeviceId: (state: RootState) => string | undefined;
2163
+ declare const selectCurrentMicrophoneDeviceId: (state: RootState) => string | undefined;
2164
+ declare const selectIsCameraEnabled: (state: RootState) => boolean;
2165
+ declare const selectIsMicrophoneEnabled: (state: RootState) => boolean;
2166
+ declare const selectIsSettingCameraDevice: (state: RootState) => boolean;
2167
+ declare const selectIsSettingMicrophoneDevice: (state: RootState) => boolean;
2168
+ declare const selectIsToggleCamera: (state: RootState) => boolean;
2169
+ declare const selectLocalMediaDevices: (state: RootState) => MediaDeviceInfo[];
2170
+ declare const selectLocalMediaOptions: (state: RootState) => LocalMediaOptions | undefined;
2171
+ declare const selectLocalMediaOwnsStream: ((state: {
2172
+ app: AppState;
2173
+ chat: ChatState;
2174
+ cloudRecording: CloudRecordingState;
2175
+ deviceCredentials: DeviceCredentialsState;
2176
+ localMedia: LocalMediaState;
2177
+ localParticipant: LocalParticipantState;
2178
+ localScreenshare: LocalScreenshareState;
2179
+ organization: OrganizationState;
2180
+ remoteParticipants: RemoteParticipantState;
2181
+ roomConnection: RoomConnectionState;
2182
+ rtcAnalytics: rtcAnalyticsState;
2183
+ rtcConnection: RtcConnectionState;
2184
+ signalConnection: SignalConnectionState;
2185
+ streaming: StreamingState;
2186
+ waitingParticipants: WaitingParticipantsState;
2187
+ }) => boolean) & {
2188
+ clearCache: () => void;
2189
+ resultsCount: () => number;
2190
+ resetResultsCount: () => void;
2191
+ } & {
2192
+ resultFunc: (resultFuncArgs_0: LocalMediaOptions | undefined) => boolean;
2193
+ memoizedResultFunc: ((resultFuncArgs_0: LocalMediaOptions | undefined) => boolean) & {
2194
+ clearCache: () => void;
2195
+ resultsCount: () => number;
2196
+ resetResultsCount: () => void;
2197
+ };
2198
+ lastResult: () => boolean;
2199
+ dependencies: [(state: RootState) => LocalMediaOptions | undefined];
2200
+ recomputations: () => number;
2201
+ resetRecomputations: () => void;
2202
+ dependencyRecomputations: () => number;
2203
+ resetDependencyRecomputations: () => void;
2204
+ } & {
2205
+ argsMemoize: typeof reselect.weakMapMemoize;
2206
+ memoize: typeof reselect.weakMapMemoize;
2207
+ };
2208
+ declare const selectLocalMediaRaw: (state: RootState) => LocalMediaState;
2209
+ declare const selectLocalMediaStatus: (state: RootState) => "" | "error" | "stopped" | "starting" | "started";
2210
+ declare const selectLocalMediaStream: (state: RootState) => MediaStream | undefined;
2211
+ declare const selectMicrophoneDeviceError: (state: RootState) => unknown;
2212
+ declare const selectLocalMediaStartError: (state: RootState) => unknown;
2213
+ declare const selectLocalMediaIsSwitchingStream: (state: RootState) => boolean;
2214
+ declare const selectLocalMediaConstraintsOptions: ((state: {
2215
+ app: AppState;
2216
+ chat: ChatState;
2217
+ cloudRecording: CloudRecordingState;
2218
+ deviceCredentials: DeviceCredentialsState;
2219
+ localMedia: LocalMediaState;
2220
+ localParticipant: LocalParticipantState;
2221
+ localScreenshare: LocalScreenshareState;
2222
+ organization: OrganizationState;
2223
+ remoteParticipants: RemoteParticipantState;
2224
+ roomConnection: RoomConnectionState;
2225
+ rtcAnalytics: rtcAnalyticsState;
2226
+ rtcConnection: RtcConnectionState;
2227
+ signalConnection: SignalConnectionState;
2228
+ streaming: StreamingState;
2229
+ waitingParticipants: WaitingParticipantsState;
2230
+ }) => {
2231
+ devices: MediaDeviceInfo[];
2232
+ options: {
2233
+ disableAEC: boolean;
2234
+ disableAGC: boolean;
2235
+ hd: boolean;
2236
+ lax: boolean;
2237
+ lowDataMode: boolean;
2238
+ simulcast: boolean;
2239
+ widescreen: boolean;
2240
+ };
2241
+ }) & {
2242
+ clearCache: () => void;
2243
+ resultsCount: () => number;
2244
+ resetResultsCount: () => void;
2245
+ } & {
2246
+ resultFunc: (resultFuncArgs_0: MediaDeviceInfo[]) => {
2247
+ devices: MediaDeviceInfo[];
2248
+ options: {
2249
+ disableAEC: boolean;
2250
+ disableAGC: boolean;
2251
+ hd: boolean;
2252
+ lax: boolean;
2253
+ lowDataMode: boolean;
2254
+ simulcast: boolean;
2255
+ widescreen: boolean;
2256
+ };
2257
+ };
2258
+ memoizedResultFunc: ((resultFuncArgs_0: MediaDeviceInfo[]) => {
2259
+ devices: MediaDeviceInfo[];
2260
+ options: {
2261
+ disableAEC: boolean;
2262
+ disableAGC: boolean;
2263
+ hd: boolean;
2264
+ lax: boolean;
2265
+ lowDataMode: boolean;
2266
+ simulcast: boolean;
2267
+ widescreen: boolean;
2268
+ };
2269
+ }) & {
2270
+ clearCache: () => void;
2271
+ resultsCount: () => number;
2272
+ resetResultsCount: () => void;
2273
+ };
2274
+ lastResult: () => {
2275
+ devices: MediaDeviceInfo[];
2276
+ options: {
2277
+ disableAEC: boolean;
2278
+ disableAGC: boolean;
2279
+ hd: boolean;
2280
+ lax: boolean;
2281
+ lowDataMode: boolean;
2282
+ simulcast: boolean;
2283
+ widescreen: boolean;
2284
+ };
2285
+ };
2286
+ dependencies: [(state: RootState) => MediaDeviceInfo[]];
2287
+ recomputations: () => number;
2288
+ resetRecomputations: () => void;
2289
+ dependencyRecomputations: () => number;
2290
+ resetDependencyRecomputations: () => void;
2291
+ } & {
2292
+ argsMemoize: typeof reselect.weakMapMemoize;
2293
+ memoize: typeof reselect.weakMapMemoize;
2294
+ };
2295
+ declare const selectIsLocalMediaStarting: ((state: {
2296
+ app: AppState;
2297
+ chat: ChatState;
2298
+ cloudRecording: CloudRecordingState;
2299
+ deviceCredentials: DeviceCredentialsState;
2300
+ localMedia: LocalMediaState;
2301
+ localParticipant: LocalParticipantState;
2302
+ localScreenshare: LocalScreenshareState;
2303
+ organization: OrganizationState;
2304
+ remoteParticipants: RemoteParticipantState;
2305
+ roomConnection: RoomConnectionState;
2306
+ rtcAnalytics: rtcAnalyticsState;
2307
+ rtcConnection: RtcConnectionState;
2308
+ signalConnection: SignalConnectionState;
2309
+ streaming: StreamingState;
2310
+ waitingParticipants: WaitingParticipantsState;
2311
+ }) => boolean) & {
2312
+ clearCache: () => void;
2313
+ resultsCount: () => number;
2314
+ resetResultsCount: () => void;
2315
+ } & {
2316
+ resultFunc: (resultFuncArgs_0: "" | "error" | "stopped" | "starting" | "started") => boolean;
2317
+ memoizedResultFunc: ((resultFuncArgs_0: "" | "error" | "stopped" | "starting" | "started") => boolean) & {
2318
+ clearCache: () => void;
2319
+ resultsCount: () => number;
2320
+ resetResultsCount: () => void;
2321
+ };
2322
+ lastResult: () => boolean;
2323
+ dependencies: [(state: RootState) => "" | "error" | "stopped" | "starting" | "started"];
2324
+ recomputations: () => number;
2325
+ resetRecomputations: () => void;
2326
+ dependencyRecomputations: () => number;
2327
+ resetDependencyRecomputations: () => void;
2328
+ } & {
2329
+ argsMemoize: typeof reselect.weakMapMemoize;
2330
+ memoize: typeof reselect.weakMapMemoize;
2331
+ };
2332
+ declare const selectCameraDevices: ((state: {
2333
+ app: AppState;
2334
+ chat: ChatState;
2335
+ cloudRecording: CloudRecordingState;
2336
+ deviceCredentials: DeviceCredentialsState;
2337
+ localMedia: LocalMediaState;
2338
+ localParticipant: LocalParticipantState;
2339
+ localScreenshare: LocalScreenshareState;
2340
+ organization: OrganizationState;
2341
+ remoteParticipants: RemoteParticipantState;
2342
+ roomConnection: RoomConnectionState;
2343
+ rtcAnalytics: rtcAnalyticsState;
2344
+ rtcConnection: RtcConnectionState;
2345
+ signalConnection: SignalConnectionState;
2346
+ streaming: StreamingState;
2347
+ waitingParticipants: WaitingParticipantsState;
2348
+ }) => MediaDeviceInfo[]) & {
2349
+ clearCache: () => void;
2350
+ resultsCount: () => number;
2351
+ resetResultsCount: () => void;
2352
+ } & {
2353
+ resultFunc: (resultFuncArgs_0: MediaDeviceInfo[], resultFuncArgs_1: string[]) => MediaDeviceInfo[];
2354
+ memoizedResultFunc: ((resultFuncArgs_0: MediaDeviceInfo[], resultFuncArgs_1: string[]) => MediaDeviceInfo[]) & {
2355
+ clearCache: () => void;
2356
+ resultsCount: () => number;
2357
+ resetResultsCount: () => void;
2358
+ };
2359
+ lastResult: () => MediaDeviceInfo[];
2360
+ dependencies: [(state: RootState) => MediaDeviceInfo[], (state: RootState) => string[]];
2361
+ recomputations: () => number;
2362
+ resetRecomputations: () => void;
2363
+ dependencyRecomputations: () => number;
2364
+ resetDependencyRecomputations: () => void;
2365
+ } & {
2366
+ argsMemoize: typeof reselect.weakMapMemoize;
2367
+ memoize: typeof reselect.weakMapMemoize;
2368
+ };
2369
+ declare const selectMicrophoneDevices: ((state: {
2370
+ app: AppState;
2371
+ chat: ChatState;
2372
+ cloudRecording: CloudRecordingState;
2373
+ deviceCredentials: DeviceCredentialsState;
2374
+ localMedia: LocalMediaState;
2375
+ localParticipant: LocalParticipantState;
2376
+ localScreenshare: LocalScreenshareState;
2377
+ organization: OrganizationState;
2378
+ remoteParticipants: RemoteParticipantState;
2379
+ roomConnection: RoomConnectionState;
2380
+ rtcAnalytics: rtcAnalyticsState;
2381
+ rtcConnection: RtcConnectionState;
2382
+ signalConnection: SignalConnectionState;
2383
+ streaming: StreamingState;
2384
+ waitingParticipants: WaitingParticipantsState;
2385
+ }) => MediaDeviceInfo[]) & {
2386
+ clearCache: () => void;
2387
+ resultsCount: () => number;
2388
+ resetResultsCount: () => void;
2389
+ } & {
2390
+ resultFunc: (resultFuncArgs_0: MediaDeviceInfo[], resultFuncArgs_1: string[]) => MediaDeviceInfo[];
2391
+ memoizedResultFunc: ((resultFuncArgs_0: MediaDeviceInfo[], resultFuncArgs_1: string[]) => MediaDeviceInfo[]) & {
2392
+ clearCache: () => void;
2393
+ resultsCount: () => number;
2394
+ resetResultsCount: () => void;
2395
+ };
2396
+ lastResult: () => MediaDeviceInfo[];
2397
+ dependencies: [(state: RootState) => MediaDeviceInfo[], (state: RootState) => string[]];
2398
+ recomputations: () => number;
2399
+ resetRecomputations: () => void;
2400
+ dependencyRecomputations: () => number;
2401
+ resetDependencyRecomputations: () => void;
2402
+ } & {
2403
+ argsMemoize: typeof reselect.weakMapMemoize;
2404
+ memoize: typeof reselect.weakMapMemoize;
2405
+ };
2406
+ declare const selectSpeakerDevices: ((state: {
2407
+ app: AppState;
2408
+ chat: ChatState;
2409
+ cloudRecording: CloudRecordingState;
2410
+ deviceCredentials: DeviceCredentialsState;
2411
+ localMedia: LocalMediaState;
2412
+ localParticipant: LocalParticipantState;
2413
+ localScreenshare: LocalScreenshareState;
2414
+ organization: OrganizationState;
2415
+ remoteParticipants: RemoteParticipantState;
2416
+ roomConnection: RoomConnectionState;
2417
+ rtcAnalytics: rtcAnalyticsState;
2418
+ rtcConnection: RtcConnectionState;
2419
+ signalConnection: SignalConnectionState;
2420
+ streaming: StreamingState;
2421
+ waitingParticipants: WaitingParticipantsState;
2422
+ }) => MediaDeviceInfo[]) & {
2423
+ clearCache: () => void;
2424
+ resultsCount: () => number;
2425
+ resetResultsCount: () => void;
2426
+ } & {
2427
+ resultFunc: (resultFuncArgs_0: MediaDeviceInfo[]) => MediaDeviceInfo[];
2428
+ memoizedResultFunc: ((resultFuncArgs_0: MediaDeviceInfo[]) => MediaDeviceInfo[]) & {
2429
+ clearCache: () => void;
2430
+ resultsCount: () => number;
2431
+ resetResultsCount: () => void;
2432
+ };
2433
+ lastResult: () => MediaDeviceInfo[];
2434
+ dependencies: [(state: RootState) => MediaDeviceInfo[]];
2435
+ recomputations: () => number;
2436
+ resetRecomputations: () => void;
2437
+ dependencyRecomputations: () => number;
2438
+ resetDependencyRecomputations: () => void;
2439
+ } & {
2440
+ argsMemoize: typeof reselect.weakMapMemoize;
2441
+ memoize: typeof reselect.weakMapMemoize;
2442
+ };
2443
+ /**
2444
+ * Reactors
2445
+ */
2446
+ declare const selectLocalMediaShouldStartWithOptions: ((state: {
2447
+ app: AppState;
2448
+ chat: ChatState;
2449
+ cloudRecording: CloudRecordingState;
2450
+ deviceCredentials: DeviceCredentialsState;
2451
+ localMedia: LocalMediaState;
2452
+ localParticipant: LocalParticipantState;
2453
+ localScreenshare: LocalScreenshareState;
2454
+ organization: OrganizationState;
2455
+ remoteParticipants: RemoteParticipantState;
2456
+ roomConnection: RoomConnectionState;
2457
+ rtcAnalytics: rtcAnalyticsState;
2458
+ rtcConnection: RtcConnectionState;
2459
+ signalConnection: SignalConnectionState;
2460
+ streaming: StreamingState;
2461
+ waitingParticipants: WaitingParticipantsState;
2462
+ }) => LocalMediaOptions | undefined) & {
2463
+ clearCache: () => void;
2464
+ resultsCount: () => number;
2465
+ resetResultsCount: () => void;
2466
+ } & {
2467
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_2: LocalMediaOptions | undefined) => LocalMediaOptions | undefined;
2468
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_2: LocalMediaOptions | undefined) => LocalMediaOptions | undefined) & {
2469
+ clearCache: () => void;
2470
+ resultsCount: () => number;
2471
+ resetResultsCount: () => void;
2472
+ };
2473
+ lastResult: () => LocalMediaOptions | undefined;
2474
+ dependencies: [(state: {
2475
+ app: AppState;
2476
+ chat: ChatState;
2477
+ cloudRecording: CloudRecordingState;
2478
+ deviceCredentials: DeviceCredentialsState;
2479
+ localMedia: LocalMediaState;
2480
+ localParticipant: LocalParticipantState;
2481
+ localScreenshare: LocalScreenshareState;
2482
+ organization: OrganizationState;
2483
+ remoteParticipants: RemoteParticipantState;
2484
+ roomConnection: RoomConnectionState;
2485
+ rtcAnalytics: rtcAnalyticsState;
2486
+ rtcConnection: RtcConnectionState;
2487
+ signalConnection: SignalConnectionState;
2488
+ streaming: StreamingState;
2489
+ waitingParticipants: WaitingParticipantsState;
2490
+ }) => boolean, (state: RootState) => "" | "error" | "stopped" | "starting" | "started", (state: RootState) => LocalMediaOptions | undefined];
2491
+ recomputations: () => number;
2492
+ resetRecomputations: () => void;
2493
+ dependencyRecomputations: () => number;
2494
+ resetDependencyRecomputations: () => void;
2495
+ } & {
2496
+ argsMemoize: typeof reselect.weakMapMemoize;
2497
+ memoize: typeof reselect.weakMapMemoize;
2498
+ };
2499
+ declare const selectLocalMediaShouldStop: ((state: {
2500
+ app: AppState;
2501
+ chat: ChatState;
2502
+ cloudRecording: CloudRecordingState;
2503
+ deviceCredentials: DeviceCredentialsState;
2504
+ localMedia: LocalMediaState;
2505
+ localParticipant: LocalParticipantState;
2506
+ localScreenshare: LocalScreenshareState;
2507
+ organization: OrganizationState;
2508
+ remoteParticipants: RemoteParticipantState;
2509
+ roomConnection: RoomConnectionState;
2510
+ rtcAnalytics: rtcAnalyticsState;
2511
+ rtcConnection: RtcConnectionState;
2512
+ signalConnection: SignalConnectionState;
2513
+ streaming: StreamingState;
2514
+ waitingParticipants: WaitingParticipantsState;
2515
+ }) => boolean) & {
2516
+ clearCache: () => void;
2517
+ resultsCount: () => number;
2518
+ resetResultsCount: () => void;
2519
+ } & {
2520
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_2: LocalMediaOptions | undefined) => boolean;
2521
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_2: LocalMediaOptions | undefined) => boolean) & {
2522
+ clearCache: () => void;
2523
+ resultsCount: () => number;
2524
+ resetResultsCount: () => void;
2525
+ };
2526
+ lastResult: () => boolean;
2527
+ dependencies: [(state: {
2528
+ app: AppState;
2529
+ chat: ChatState;
2530
+ cloudRecording: CloudRecordingState;
2531
+ deviceCredentials: DeviceCredentialsState;
2532
+ localMedia: LocalMediaState;
2533
+ localParticipant: LocalParticipantState;
2534
+ localScreenshare: LocalScreenshareState;
2535
+ organization: OrganizationState;
2536
+ remoteParticipants: RemoteParticipantState;
2537
+ roomConnection: RoomConnectionState;
2538
+ rtcAnalytics: rtcAnalyticsState;
2539
+ rtcConnection: RtcConnectionState;
2540
+ signalConnection: SignalConnectionState;
2541
+ streaming: StreamingState;
2542
+ waitingParticipants: WaitingParticipantsState;
2543
+ }) => boolean, (state: RootState) => "" | "error" | "stopped" | "starting" | "started", (state: RootState) => LocalMediaOptions | undefined];
2544
+ recomputations: () => number;
2545
+ resetRecomputations: () => void;
2546
+ dependencyRecomputations: () => number;
2547
+ resetDependencyRecomputations: () => void;
2548
+ } & {
2549
+ argsMemoize: typeof reselect.weakMapMemoize;
2550
+ memoize: typeof reselect.weakMapMemoize;
2551
+ };
2552
+
2553
+ /**
2554
+ * Reducer
2555
+ */
2556
+ interface OrganizationState {
2557
+ data: Organization | null | undefined;
2558
+ isFetching: boolean;
2559
+ error: unknown;
2560
+ }
2561
+ declare const organizationSlice: _reduxjs_toolkit.Slice<OrganizationState, {}, "organization", "organization", _reduxjs_toolkit.SliceSelectors<OrganizationState>>;
2562
+ /**
2563
+ * Action creators
2564
+ */
2565
+ declare const doOrganizationFetch: _reduxjs_toolkit.AsyncThunk<Organization | undefined, undefined, ThunkConfig>;
2566
+ /**
2567
+ * Selectors
2568
+ */
2569
+ declare const selectOrganizationRaw: (state: RootState) => OrganizationState;
2570
+ declare const selectOrganizationId: (state: RootState) => string | undefined;
2571
+ /**
2572
+ * Reducers
2573
+ */
2574
+ declare const selectShouldFetchOrganization: ((state: {
2575
+ app: AppState;
2576
+ chat: ChatState;
2577
+ cloudRecording: CloudRecordingState;
2578
+ deviceCredentials: DeviceCredentialsState;
2579
+ localMedia: LocalMediaState;
2580
+ localParticipant: LocalParticipantState;
2581
+ localScreenshare: LocalScreenshareState;
2582
+ organization: OrganizationState;
2583
+ remoteParticipants: RemoteParticipantState;
2584
+ roomConnection: RoomConnectionState;
2585
+ rtcAnalytics: rtcAnalyticsState;
2586
+ rtcConnection: RtcConnectionState;
2587
+ signalConnection: SignalConnectionState;
2588
+ streaming: StreamingState;
2589
+ waitingParticipants: WaitingParticipantsState;
2590
+ }) => boolean) & {
2591
+ clearCache: () => void;
2592
+ resultsCount: () => number;
2593
+ resetResultsCount: () => void;
2594
+ } & {
2595
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: OrganizationState, resultFuncArgs_2: DeviceCredentialsState) => boolean;
2596
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: OrganizationState, resultFuncArgs_2: DeviceCredentialsState) => boolean) & {
2597
+ clearCache: () => void;
2598
+ resultsCount: () => number;
2599
+ resetResultsCount: () => void;
2600
+ };
2601
+ lastResult: () => boolean;
2602
+ dependencies: [(state: {
2603
+ app: AppState;
2604
+ chat: ChatState;
2605
+ cloudRecording: CloudRecordingState;
2606
+ deviceCredentials: DeviceCredentialsState;
2607
+ localMedia: LocalMediaState;
2608
+ localParticipant: LocalParticipantState;
2609
+ localScreenshare: LocalScreenshareState;
2610
+ organization: OrganizationState;
2611
+ remoteParticipants: RemoteParticipantState;
2612
+ roomConnection: RoomConnectionState;
2613
+ rtcAnalytics: rtcAnalyticsState;
2614
+ rtcConnection: RtcConnectionState;
2615
+ signalConnection: SignalConnectionState;
2616
+ streaming: StreamingState;
2617
+ waitingParticipants: WaitingParticipantsState;
2618
+ }) => boolean, (state: RootState) => OrganizationState, (state: {
2619
+ app: AppState;
2620
+ chat: ChatState;
2621
+ cloudRecording: CloudRecordingState;
2622
+ deviceCredentials: DeviceCredentialsState;
2623
+ localMedia: LocalMediaState;
2624
+ localParticipant: LocalParticipantState;
2625
+ localScreenshare: LocalScreenshareState;
2626
+ organization: OrganizationState;
2627
+ remoteParticipants: RemoteParticipantState;
2628
+ roomConnection: RoomConnectionState;
2629
+ rtcAnalytics: rtcAnalyticsState;
2630
+ rtcConnection: RtcConnectionState;
2631
+ signalConnection: SignalConnectionState;
2632
+ streaming: StreamingState;
2633
+ waitingParticipants: WaitingParticipantsState;
2634
+ }) => DeviceCredentialsState];
2635
+ recomputations: () => number;
2636
+ resetRecomputations: () => void;
2637
+ dependencyRecomputations: () => number;
2638
+ resetDependencyRecomputations: () => void;
2639
+ } & {
2640
+ argsMemoize: typeof reselect.weakMapMemoize;
2641
+ memoize: typeof reselect.weakMapMemoize;
2642
+ };
2643
+
2644
+ interface StreamStatusUpdate {
2645
+ clientId: string;
2646
+ streamId: string;
2647
+ state: StreamState;
2648
+ }
2649
+
2650
+ /**
2651
+ * Reducer
2652
+ */
2653
+ interface RemoteParticipantState {
2654
+ remoteParticipants: RemoteParticipant[];
2655
+ }
2656
+ declare const remoteParticipantsSlice: _reduxjs_toolkit.Slice<RemoteParticipantState, {
2657
+ streamStatusUpdated: (state: {
2658
+ remoteParticipants: {
2659
+ id: string;
2660
+ displayName: string;
2661
+ isAudioEnabled: boolean;
2662
+ isVideoEnabled: boolean;
2663
+ isLocalParticipant: boolean;
2664
+ stream: {
2665
+ active: boolean;
2666
+ id: string;
2667
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2668
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2669
+ addTrack: (track: MediaStreamTrack) => void;
2670
+ clone: () => MediaStream;
2671
+ getAudioTracks: () => MediaStreamTrack[];
2672
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2673
+ getTracks: () => MediaStreamTrack[];
2674
+ getVideoTracks: () => MediaStreamTrack[];
2675
+ removeTrack: (track: MediaStreamTrack) => void;
2676
+ addEventListener: {
2677
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2678
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2679
+ };
2680
+ removeEventListener: {
2681
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2682
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2683
+ };
2684
+ dispatchEvent: (event: Event) => boolean;
2685
+ inboundId?: string | undefined;
2686
+ } | null;
2687
+ streams: {
2688
+ id: string;
2689
+ state: StreamState;
2690
+ }[];
2691
+ newJoiner: boolean;
2692
+ presentationStream: {
2693
+ active: boolean;
2694
+ id: string;
2695
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2696
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2697
+ addTrack: (track: MediaStreamTrack) => void;
2698
+ clone: () => MediaStream;
2699
+ getAudioTracks: () => MediaStreamTrack[];
2700
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2701
+ getTracks: () => MediaStreamTrack[];
2702
+ getVideoTracks: () => MediaStreamTrack[];
2703
+ removeTrack: (track: MediaStreamTrack) => void;
2704
+ addEventListener: {
2705
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2706
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2707
+ };
2708
+ removeEventListener: {
2709
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
2710
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2711
+ };
2712
+ dispatchEvent: (event: Event) => boolean;
2713
+ inboundId?: string | undefined;
2714
+ } | null;
2715
+ }[];
2716
+ }, action: PayloadAction<StreamStatusUpdate[]>) => {
2717
+ remoteParticipants: {
2718
+ id: string;
2719
+ displayName: string;
2720
+ isAudioEnabled: boolean;
2721
+ isVideoEnabled: boolean;
2722
+ isLocalParticipant: boolean;
2723
+ stream: {
2724
+ active: boolean;
2725
+ id: string;
2726
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2727
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2728
+ addTrack: (track: MediaStreamTrack) => void;
2729
+ clone: () => MediaStream;
2730
+ getAudioTracks: () => MediaStreamTrack[];
2731
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2732
+ getTracks: () => MediaStreamTrack[];
2733
+ getVideoTracks: () => MediaStreamTrack[];
2734
+ removeTrack: (track: MediaStreamTrack) => void;
2735
+ addEventListener: {
2736
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2737
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2738
+ };
2739
+ removeEventListener: {
2740
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2741
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2742
+ };
2743
+ dispatchEvent: (event: Event) => boolean;
2744
+ inboundId?: string | undefined;
2745
+ } | null;
2746
+ streams: {
2747
+ id: string;
2748
+ state: StreamState;
2749
+ }[];
2750
+ newJoiner: boolean;
2751
+ presentationStream: {
2752
+ active: boolean;
2753
+ id: string;
2754
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2755
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2756
+ addTrack: (track: MediaStreamTrack) => void;
2757
+ clone: () => MediaStream;
2758
+ getAudioTracks: () => MediaStreamTrack[];
2759
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2760
+ getTracks: () => MediaStreamTrack[];
2761
+ getVideoTracks: () => MediaStreamTrack[];
2762
+ removeTrack: (track: MediaStreamTrack) => void;
2763
+ addEventListener: {
2764
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2765
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2766
+ };
2767
+ removeEventListener: {
2768
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
2769
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2770
+ };
2771
+ dispatchEvent: (event: Event) => boolean;
2772
+ inboundId?: string | undefined;
2773
+ } | null;
2774
+ }[];
2775
+ };
2776
+ participantStreamAdded: (state: {
2777
+ remoteParticipants: {
2778
+ id: string;
2779
+ displayName: string;
2780
+ isAudioEnabled: boolean;
2781
+ isVideoEnabled: boolean;
2782
+ isLocalParticipant: boolean;
2783
+ stream: {
2784
+ active: boolean;
2785
+ id: string;
2786
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2787
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2788
+ addTrack: (track: MediaStreamTrack) => void;
2789
+ clone: () => MediaStream;
2790
+ getAudioTracks: () => MediaStreamTrack[];
2791
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2792
+ getTracks: () => MediaStreamTrack[];
2793
+ getVideoTracks: () => MediaStreamTrack[];
2794
+ removeTrack: (track: MediaStreamTrack) => void;
2795
+ addEventListener: {
2796
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2797
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2798
+ };
2799
+ removeEventListener: {
2800
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2801
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2802
+ };
2803
+ dispatchEvent: (event: Event) => boolean;
2804
+ inboundId?: string | undefined;
2805
+ } | null;
2806
+ streams: {
2807
+ id: string;
2808
+ state: StreamState;
2809
+ }[];
2810
+ newJoiner: boolean;
2811
+ presentationStream: {
2812
+ active: boolean;
2813
+ id: string;
2814
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2815
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2816
+ addTrack: (track: MediaStreamTrack) => void;
2817
+ clone: () => MediaStream;
2818
+ getAudioTracks: () => MediaStreamTrack[];
2819
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2820
+ getTracks: () => MediaStreamTrack[];
2821
+ getVideoTracks: () => MediaStreamTrack[];
2822
+ removeTrack: (track: MediaStreamTrack) => void;
2823
+ addEventListener: {
2824
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2825
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2826
+ };
2827
+ removeEventListener: {
2828
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
2829
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2830
+ };
2831
+ dispatchEvent: (event: Event) => boolean;
2832
+ inboundId?: string | undefined;
2833
+ } | null;
2834
+ }[];
2835
+ }, action: PayloadAction<RtcStreamAddedPayload>) => RemoteParticipantState;
2836
+ participantStreamIdAdded: (state: {
2837
+ remoteParticipants: {
2838
+ id: string;
2839
+ displayName: string;
2840
+ isAudioEnabled: boolean;
2841
+ isVideoEnabled: boolean;
2842
+ isLocalParticipant: boolean;
2843
+ stream: {
2844
+ active: boolean;
2845
+ id: string;
2846
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2847
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2848
+ addTrack: (track: MediaStreamTrack) => void;
2849
+ clone: () => MediaStream;
2850
+ getAudioTracks: () => MediaStreamTrack[];
2851
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2852
+ getTracks: () => MediaStreamTrack[];
2853
+ getVideoTracks: () => MediaStreamTrack[];
2854
+ removeTrack: (track: MediaStreamTrack) => void;
2855
+ addEventListener: {
2856
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2857
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2858
+ };
2859
+ removeEventListener: {
2860
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
2861
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2862
+ };
2863
+ dispatchEvent: (event: Event) => boolean;
2864
+ inboundId?: string | undefined;
2865
+ } | null;
2866
+ streams: {
2867
+ id: string;
2868
+ state: StreamState;
2869
+ }[];
2870
+ newJoiner: boolean;
2871
+ presentationStream: {
2872
+ active: boolean;
2873
+ id: string;
2874
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2875
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
2876
+ addTrack: (track: MediaStreamTrack) => void;
2877
+ clone: () => MediaStream;
2878
+ getAudioTracks: () => MediaStreamTrack[];
2879
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
2880
+ getTracks: () => MediaStreamTrack[];
2881
+ getVideoTracks: () => MediaStreamTrack[];
2882
+ removeTrack: (track: MediaStreamTrack) => void;
2883
+ addEventListener: {
2884
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
2885
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
2886
+ };
2887
+ removeEventListener: {
2888
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
2889
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
2890
+ };
2891
+ dispatchEvent: (event: Event) => boolean;
2892
+ inboundId?: string | undefined;
2893
+ } | null;
2894
+ }[];
2895
+ }, action: PayloadAction<{
2896
+ clientId: string;
2897
+ streamId: string;
2898
+ }>) => RemoteParticipantState;
2899
+ }, "remoteParticipants", "remoteParticipants", _reduxjs_toolkit.SliceSelectors<RemoteParticipantState>>;
2900
+ /**
2901
+ * Action creators
2902
+ */
2903
+ declare const participantStreamAdded: _reduxjs_toolkit.ActionCreatorWithPayload<RtcStreamAddedPayload, "remoteParticipants/participantStreamAdded">;
2904
+ declare const participantStreamIdAdded: _reduxjs_toolkit.ActionCreatorWithPayload<{
2905
+ clientId: string;
2906
+ streamId: string;
2907
+ }, "remoteParticipants/participantStreamIdAdded">;
2908
+ declare const streamStatusUpdated: _reduxjs_toolkit.ActionCreatorWithPayload<StreamStatusUpdate[], "remoteParticipants/streamStatusUpdated">;
2909
+ /**
2910
+ * Selectors
2911
+ */
2912
+ declare const selectRemoteParticipantsRaw: (state: RootState) => RemoteParticipantState;
2913
+ declare const selectRemoteParticipants: (state: RootState) => RemoteParticipant[];
2914
+ declare const selectScreenshares: ((state: {
2915
+ app: AppState;
2916
+ chat: ChatState;
2917
+ cloudRecording: CloudRecordingState;
2918
+ deviceCredentials: DeviceCredentialsState;
2919
+ localMedia: LocalMediaState;
2920
+ localParticipant: LocalParticipantState;
2921
+ localScreenshare: LocalScreenshareState;
2922
+ organization: OrganizationState;
2923
+ remoteParticipants: RemoteParticipantState;
2924
+ roomConnection: RoomConnectionState;
2925
+ rtcAnalytics: rtcAnalyticsState;
2926
+ rtcConnection: RtcConnectionState;
2927
+ signalConnection: SignalConnectionState;
2928
+ streaming: StreamingState;
2929
+ waitingParticipants: WaitingParticipantsState;
2930
+ }) => Screenshare[]) & {
2931
+ clearCache: () => void;
2932
+ resultsCount: () => number;
2933
+ resetResultsCount: () => void;
2934
+ } & {
2935
+ resultFunc: (resultFuncArgs_0: MediaStream | null, resultFuncArgs_1: RemoteParticipant[]) => Screenshare[];
2936
+ memoizedResultFunc: ((resultFuncArgs_0: MediaStream | null, resultFuncArgs_1: RemoteParticipant[]) => Screenshare[]) & {
2937
+ clearCache: () => void;
2938
+ resultsCount: () => number;
2939
+ resetResultsCount: () => void;
2940
+ };
2941
+ lastResult: () => Screenshare[];
2942
+ dependencies: [(state: {
2943
+ app: AppState;
2944
+ chat: ChatState;
2945
+ cloudRecording: CloudRecordingState;
2946
+ deviceCredentials: DeviceCredentialsState;
2947
+ localMedia: LocalMediaState;
2948
+ localParticipant: LocalParticipantState;
2949
+ localScreenshare: LocalScreenshareState;
2950
+ organization: OrganizationState;
2951
+ remoteParticipants: RemoteParticipantState;
2952
+ roomConnection: RoomConnectionState;
2953
+ rtcAnalytics: rtcAnalyticsState;
2954
+ rtcConnection: RtcConnectionState;
2955
+ signalConnection: SignalConnectionState;
2956
+ streaming: StreamingState;
2957
+ waitingParticipants: WaitingParticipantsState;
2958
+ }) => MediaStream | null, (state: RootState) => RemoteParticipant[]];
2959
+ recomputations: () => number;
2960
+ resetRecomputations: () => void;
2961
+ dependencyRecomputations: () => number;
2962
+ resetDependencyRecomputations: () => void;
2963
+ } & {
2964
+ argsMemoize: typeof reselect.weakMapMemoize;
2965
+ memoize: typeof reselect.weakMapMemoize;
2966
+ };
2967
+
2968
+ type ConnectionStatus = "initializing" | "connecting" | "connected" | "reconnect" | "room_locked" | "knocking" | "disconnecting" | "disconnected" | "knock_rejected";
2969
+ /**
2970
+ * Reducer
2971
+ */
2972
+ interface RoomConnectionState {
2973
+ session: {
2974
+ createdAt: string;
2975
+ id: string;
2976
+ } | null;
2977
+ status: ConnectionStatus;
2978
+ error: unknown;
2979
+ }
2980
+ declare const roomConnectionSlice: _reduxjs_toolkit.Slice<RoomConnectionState, {
2981
+ connectionStatusChanged: (state: {
2982
+ session: {
2983
+ createdAt: string;
2984
+ id: string;
2985
+ } | null;
2986
+ status: ConnectionStatus;
2987
+ error: unknown;
2988
+ }, action: PayloadAction<ConnectionStatus>) => {
2989
+ status: ConnectionStatus;
2990
+ session: {
2991
+ createdAt: string;
2992
+ id: string;
2993
+ } | null;
2994
+ error: unknown;
2995
+ };
2996
+ }, "roomConnection", "roomConnection", _reduxjs_toolkit.SliceSelectors<RoomConnectionState>>;
2997
+ declare const doKnockRoom: (args: void) => AppThunk<void>;
2998
+ declare const doConnectRoom: (args: void) => AppThunk<void>;
2999
+ /**
3000
+ * Selectors
3001
+ */
3002
+ declare const selectRoomConnectionRaw: (state: RootState) => RoomConnectionState;
3003
+ declare const selectRoomConnectionSession: (state: RootState) => {
3004
+ createdAt: string;
3005
+ id: string;
3006
+ } | null;
3007
+ declare const selectRoomConnectionSessionId: (state: RootState) => string | undefined;
3008
+ declare const selectRoomConnectionStatus: (state: RootState) => ConnectionStatus;
3009
+ /**
3010
+ * Reactors
3011
+ */
3012
+ declare const selectShouldConnectRoom: ((state: {
3013
+ app: AppState;
3014
+ chat: ChatState;
3015
+ cloudRecording: CloudRecordingState;
3016
+ deviceCredentials: DeviceCredentialsState;
3017
+ localMedia: LocalMediaState;
3018
+ localParticipant: LocalParticipantState;
3019
+ localScreenshare: LocalScreenshareState;
3020
+ organization: OrganizationState;
3021
+ remoteParticipants: RemoteParticipantState;
3022
+ roomConnection: RoomConnectionState;
3023
+ rtcAnalytics: rtcAnalyticsState;
3024
+ rtcConnection: RtcConnectionState;
3025
+ signalConnection: SignalConnectionState;
3026
+ streaming: StreamingState;
3027
+ waitingParticipants: WaitingParticipantsState;
3028
+ }) => boolean) & {
3029
+ clearCache: () => void;
3030
+ resultsCount: () => number;
3031
+ resetResultsCount: () => void;
3032
+ } & {
3033
+ resultFunc: (resultFuncArgs_0: string | undefined, resultFuncArgs_1: ConnectionStatus, resultFuncArgs_2: boolean, resultFuncArgs_3: "" | "error" | "stopped" | "starting" | "started") => boolean;
3034
+ memoizedResultFunc: ((resultFuncArgs_0: string | undefined, resultFuncArgs_1: ConnectionStatus, resultFuncArgs_2: boolean, resultFuncArgs_3: "" | "error" | "stopped" | "starting" | "started") => boolean) & {
3035
+ clearCache: () => void;
3036
+ resultsCount: () => number;
3037
+ resetResultsCount: () => void;
3038
+ };
3039
+ lastResult: () => boolean;
3040
+ dependencies: [(state: {
3041
+ app: AppState;
3042
+ chat: ChatState;
3043
+ cloudRecording: CloudRecordingState;
3044
+ deviceCredentials: DeviceCredentialsState;
3045
+ localMedia: LocalMediaState;
3046
+ localParticipant: LocalParticipantState;
3047
+ localScreenshare: LocalScreenshareState;
3048
+ organization: OrganizationState;
3049
+ remoteParticipants: RemoteParticipantState;
3050
+ roomConnection: RoomConnectionState;
3051
+ rtcAnalytics: rtcAnalyticsState;
3052
+ rtcConnection: RtcConnectionState;
3053
+ signalConnection: SignalConnectionState;
3054
+ streaming: StreamingState;
3055
+ waitingParticipants: WaitingParticipantsState;
3056
+ }) => string | undefined, (state: RootState) => ConnectionStatus, (state: {
3057
+ app: AppState;
3058
+ chat: ChatState;
3059
+ cloudRecording: CloudRecordingState;
3060
+ deviceCredentials: DeviceCredentialsState;
3061
+ localMedia: LocalMediaState;
3062
+ localParticipant: LocalParticipantState;
3063
+ localScreenshare: LocalScreenshareState;
3064
+ organization: OrganizationState;
3065
+ remoteParticipants: RemoteParticipantState;
3066
+ roomConnection: RoomConnectionState;
3067
+ rtcAnalytics: rtcAnalyticsState;
3068
+ rtcConnection: RtcConnectionState;
3069
+ signalConnection: SignalConnectionState;
3070
+ streaming: StreamingState;
3071
+ waitingParticipants: WaitingParticipantsState;
3072
+ }) => boolean, (state: {
3073
+ app: AppState;
3074
+ chat: ChatState;
3075
+ cloudRecording: CloudRecordingState;
3076
+ deviceCredentials: DeviceCredentialsState;
3077
+ localMedia: LocalMediaState;
3078
+ localParticipant: LocalParticipantState;
3079
+ localScreenshare: LocalScreenshareState;
3080
+ organization: OrganizationState;
3081
+ remoteParticipants: RemoteParticipantState;
3082
+ roomConnection: RoomConnectionState;
3083
+ rtcAnalytics: rtcAnalyticsState;
3084
+ rtcConnection: RtcConnectionState;
3085
+ signalConnection: SignalConnectionState;
3086
+ streaming: StreamingState;
3087
+ waitingParticipants: WaitingParticipantsState;
3088
+ }) => "" | "error" | "stopped" | "starting" | "started"];
3089
+ recomputations: () => number;
3090
+ resetRecomputations: () => void;
3091
+ dependencyRecomputations: () => number;
3092
+ resetDependencyRecomputations: () => void;
3093
+ } & {
3094
+ argsMemoize: typeof reselect.weakMapMemoize;
3095
+ memoize: typeof reselect.weakMapMemoize;
3096
+ };
3097
+
3098
+ declare const createWebRtcEmitter: (dispatch: AppDispatch) => {
3099
+ emit: (eventName: keyof RtcEvents, data: RtcEvents[keyof RtcEvents]) => void;
3100
+ };
3101
+ /**
3102
+ * Reducer
3103
+ */
3104
+ interface StreamResolutionUpdate {
3105
+ streamId: string;
3106
+ width: number;
3107
+ height: number;
3108
+ }
3109
+ interface RtcConnectionState {
3110
+ dispatcherCreated: boolean;
3111
+ error: unknown;
3112
+ isCreatingDispatcher: boolean;
3113
+ reportedStreamResolutions: {
3114
+ [streamId: string]: Omit<StreamResolutionUpdate, "streamId">;
3115
+ };
3116
+ rtcManager: RtcManager | null;
3117
+ rtcManagerDispatcher: RtcManagerDispatcher | null;
3118
+ rtcManagerInitialized: boolean;
3119
+ status: "" | "ready" | "reconnect";
3120
+ isAcceptingStreams: boolean;
3121
+ }
3122
+ declare const rtcConnectionSlice: _reduxjs_toolkit.Slice<RtcConnectionState, {
3123
+ isAcceptingStreams: (state: {
3124
+ dispatcherCreated: boolean;
3125
+ error: unknown;
3126
+ isCreatingDispatcher: boolean;
3127
+ reportedStreamResolutions: {
3128
+ [x: string]: {
3129
+ width: number;
3130
+ height: number;
3131
+ };
3132
+ };
3133
+ rtcManager: {
3134
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3135
+ activeBreakout: any;
3136
+ clientId: any;
3137
+ shouldAddLocalVideo: any;
3138
+ streamId: any;
3139
+ }) => void;
3140
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3141
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3142
+ disconnectAll: () => void;
3143
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3144
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3145
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3146
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3147
+ width: number;
3148
+ height: number;
3149
+ }) => void;
3150
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3151
+ } | null;
3152
+ rtcManagerDispatcher: {} | null;
3153
+ rtcManagerInitialized: boolean;
3154
+ status: "" | "ready" | "reconnect";
3155
+ isAcceptingStreams: boolean;
3156
+ }, action: PayloadAction<boolean>) => {
3157
+ isAcceptingStreams: boolean;
3158
+ dispatcherCreated: boolean;
3159
+ error: unknown;
3160
+ isCreatingDispatcher: boolean;
3161
+ reportedStreamResolutions: {
3162
+ [x: string]: {
3163
+ width: number;
3164
+ height: number;
3165
+ };
3166
+ };
3167
+ rtcManager: {
3168
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3169
+ activeBreakout: any;
3170
+ clientId: any;
3171
+ shouldAddLocalVideo: any;
3172
+ streamId: any;
3173
+ }) => void;
3174
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3175
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3176
+ disconnectAll: () => void;
3177
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3178
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3179
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3180
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3181
+ width: number;
3182
+ height: number;
3183
+ }) => void;
3184
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3185
+ } | null;
3186
+ rtcManagerDispatcher: {} | null;
3187
+ rtcManagerInitialized: boolean;
3188
+ status: "" | "ready" | "reconnect";
3189
+ };
3190
+ resolutionReported: (state: {
3191
+ dispatcherCreated: boolean;
3192
+ error: unknown;
3193
+ isCreatingDispatcher: boolean;
3194
+ reportedStreamResolutions: {
3195
+ [x: string]: {
3196
+ width: number;
3197
+ height: number;
3198
+ };
3199
+ };
3200
+ rtcManager: {
3201
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3202
+ activeBreakout: any;
3203
+ clientId: any;
3204
+ shouldAddLocalVideo: any;
3205
+ streamId: any;
3206
+ }) => void;
3207
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3208
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3209
+ disconnectAll: () => void;
3210
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3211
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3212
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3213
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3214
+ width: number;
3215
+ height: number;
3216
+ }) => void;
3217
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3218
+ } | null;
3219
+ rtcManagerDispatcher: {} | null;
3220
+ rtcManagerInitialized: boolean;
3221
+ status: "" | "ready" | "reconnect";
3222
+ isAcceptingStreams: boolean;
3223
+ }, action: PayloadAction<StreamResolutionUpdate>) => {
3224
+ reportedStreamResolutions: {
3225
+ [x: string]: {
3226
+ width: number;
3227
+ height: number;
3228
+ } | {
3229
+ width: number;
3230
+ height: number;
3231
+ };
3232
+ };
3233
+ dispatcherCreated: boolean;
3234
+ error: unknown;
3235
+ isCreatingDispatcher: boolean;
3236
+ rtcManager: {
3237
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3238
+ activeBreakout: any;
3239
+ clientId: any;
3240
+ shouldAddLocalVideo: any;
3241
+ streamId: any;
3242
+ }) => void;
3243
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3244
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3245
+ disconnectAll: () => void;
3246
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3247
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3248
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3249
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3250
+ width: number;
3251
+ height: number;
3252
+ }) => void;
3253
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3254
+ } | null;
3255
+ rtcManagerDispatcher: {} | null;
3256
+ rtcManagerInitialized: boolean;
3257
+ status: "" | "ready" | "reconnect";
3258
+ isAcceptingStreams: boolean;
3259
+ };
3260
+ rtcDisconnected: () => {
3261
+ dispatcherCreated: boolean;
3262
+ error: unknown;
3263
+ isCreatingDispatcher: boolean;
3264
+ reportedStreamResolutions: {
3265
+ [streamId: string]: Omit<StreamResolutionUpdate, "streamId">;
3266
+ };
3267
+ rtcManager: RtcManager | null;
3268
+ rtcManagerDispatcher: RtcManagerDispatcher | null;
3269
+ rtcManagerInitialized: boolean;
3270
+ status: "" | "ready" | "reconnect";
3271
+ isAcceptingStreams: boolean;
3272
+ };
3273
+ rtcDispatcherCreated: (state: {
3274
+ dispatcherCreated: boolean;
3275
+ error: unknown;
3276
+ isCreatingDispatcher: boolean;
3277
+ reportedStreamResolutions: {
3278
+ [x: string]: {
3279
+ width: number;
3280
+ height: number;
3281
+ };
3282
+ };
3283
+ rtcManager: {
3284
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3285
+ activeBreakout: any;
3286
+ clientId: any;
3287
+ shouldAddLocalVideo: any;
3288
+ streamId: any;
3289
+ }) => void;
3290
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3291
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3292
+ disconnectAll: () => void;
3293
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3294
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3295
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3296
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3297
+ width: number;
3298
+ height: number;
3299
+ }) => void;
3300
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3301
+ } | null;
3302
+ rtcManagerDispatcher: {} | null;
3303
+ rtcManagerInitialized: boolean;
3304
+ status: "" | "ready" | "reconnect";
3305
+ isAcceptingStreams: boolean;
3306
+ }, action: PayloadAction<RtcManagerDispatcher>) => {
3307
+ dispatcherCreated: true;
3308
+ rtcManagerDispatcher: RtcManagerDispatcher;
3309
+ error: unknown;
3310
+ isCreatingDispatcher: boolean;
3311
+ reportedStreamResolutions: {
3312
+ [x: string]: {
3313
+ width: number;
3314
+ height: number;
3315
+ };
3316
+ };
3317
+ rtcManager: {
3318
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3319
+ activeBreakout: any;
3320
+ clientId: any;
3321
+ shouldAddLocalVideo: any;
3322
+ streamId: any;
3323
+ }) => void;
3324
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3325
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3326
+ disconnectAll: () => void;
3327
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3328
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3329
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3330
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3331
+ width: number;
3332
+ height: number;
3333
+ }) => void;
3334
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3335
+ } | null;
3336
+ rtcManagerInitialized: boolean;
3337
+ status: "" | "ready" | "reconnect";
3338
+ isAcceptingStreams: boolean;
3339
+ };
3340
+ rtcManagerCreated: (state: {
3341
+ dispatcherCreated: boolean;
3342
+ error: unknown;
3343
+ isCreatingDispatcher: boolean;
3344
+ reportedStreamResolutions: {
3345
+ [x: string]: {
3346
+ width: number;
3347
+ height: number;
3348
+ };
3349
+ };
3350
+ rtcManager: {
3351
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3352
+ activeBreakout: any;
3353
+ clientId: any;
3354
+ shouldAddLocalVideo: any;
3355
+ streamId: any;
3356
+ }) => void;
3357
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3358
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3359
+ disconnectAll: () => void;
3360
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3361
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3362
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3363
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3364
+ width: number;
3365
+ height: number;
3366
+ }) => void;
3367
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3368
+ } | null;
3369
+ rtcManagerDispatcher: {} | null;
3370
+ rtcManagerInitialized: boolean;
3371
+ status: "" | "ready" | "reconnect";
3372
+ isAcceptingStreams: boolean;
3373
+ }, action: PayloadAction<RtcManager>) => {
3374
+ rtcManager: RtcManager;
3375
+ status: "ready";
3376
+ dispatcherCreated: boolean;
3377
+ error: unknown;
3378
+ isCreatingDispatcher: boolean;
3379
+ reportedStreamResolutions: {
3380
+ [x: string]: {
3381
+ width: number;
3382
+ height: number;
3383
+ };
3384
+ };
3385
+ rtcManagerDispatcher: {} | null;
3386
+ rtcManagerInitialized: boolean;
3387
+ isAcceptingStreams: boolean;
3388
+ };
3389
+ rtcManagerDestroyed: (state: {
3390
+ dispatcherCreated: boolean;
3391
+ error: unknown;
3392
+ isCreatingDispatcher: boolean;
3393
+ reportedStreamResolutions: {
3394
+ [x: string]: {
3395
+ width: number;
3396
+ height: number;
3397
+ };
3398
+ };
3399
+ rtcManager: {
3400
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3401
+ activeBreakout: any;
3402
+ clientId: any;
3403
+ shouldAddLocalVideo: any;
3404
+ streamId: any;
3405
+ }) => void;
3406
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3407
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3408
+ disconnectAll: () => void;
3409
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3410
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3411
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3412
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3413
+ width: number;
3414
+ height: number;
3415
+ }) => void;
3416
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3417
+ } | null;
3418
+ rtcManagerDispatcher: {} | null;
3419
+ rtcManagerInitialized: boolean;
3420
+ status: "" | "ready" | "reconnect";
3421
+ isAcceptingStreams: boolean;
3422
+ }) => {
3423
+ rtcManager: null;
3424
+ dispatcherCreated: boolean;
3425
+ error: unknown;
3426
+ isCreatingDispatcher: boolean;
3427
+ reportedStreamResolutions: {
3428
+ [x: string]: {
3429
+ width: number;
3430
+ height: number;
3431
+ };
3432
+ };
3433
+ rtcManagerDispatcher: {} | null;
3434
+ rtcManagerInitialized: boolean;
3435
+ status: "" | "ready" | "reconnect";
3436
+ isAcceptingStreams: boolean;
3437
+ };
3438
+ rtcManagerInitialized: (state: {
3439
+ dispatcherCreated: boolean;
3440
+ error: unknown;
3441
+ isCreatingDispatcher: boolean;
3442
+ reportedStreamResolutions: {
3443
+ [x: string]: {
3444
+ width: number;
3445
+ height: number;
3446
+ };
3447
+ };
3448
+ rtcManager: {
3449
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3450
+ activeBreakout: any;
3451
+ clientId: any;
3452
+ shouldAddLocalVideo: any;
3453
+ streamId: any;
3454
+ }) => void;
3455
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3456
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3457
+ disconnectAll: () => void;
3458
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3459
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3460
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3461
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3462
+ width: number;
3463
+ height: number;
3464
+ }) => void;
3465
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3466
+ } | null;
3467
+ rtcManagerDispatcher: {} | null;
3468
+ rtcManagerInitialized: boolean;
3469
+ status: "" | "ready" | "reconnect";
3470
+ isAcceptingStreams: boolean;
3471
+ }) => {
3472
+ rtcManagerInitialized: true;
3473
+ dispatcherCreated: boolean;
3474
+ error: unknown;
3475
+ isCreatingDispatcher: boolean;
3476
+ reportedStreamResolutions: {
3477
+ [x: string]: {
3478
+ width: number;
3479
+ height: number;
3480
+ };
3481
+ };
3482
+ rtcManager: {
3483
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
3484
+ activeBreakout: any;
3485
+ clientId: any;
3486
+ shouldAddLocalVideo: any;
3487
+ streamId: any;
3488
+ }) => void;
3489
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
3490
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
3491
+ disconnectAll: () => void;
3492
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
3493
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
3494
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
3495
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
3496
+ width: number;
3497
+ height: number;
3498
+ }) => void;
3499
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
3500
+ } | null;
3501
+ rtcManagerDispatcher: {} | null;
3502
+ status: "" | "ready" | "reconnect";
3503
+ isAcceptingStreams: boolean;
3504
+ };
3505
+ }, "rtcConnection", "rtcConnection", _reduxjs_toolkit.SliceSelectors<RtcConnectionState>>;
3506
+ /**
3507
+ * Action creators
3508
+ */
3509
+ declare const resolutionReported: _reduxjs_toolkit.ActionCreatorWithPayload<StreamResolutionUpdate, "rtcConnection/resolutionReported">;
3510
+ declare const rtcDispatcherCreated: _reduxjs_toolkit.ActionCreatorWithPayload<RtcManagerDispatcher, "rtcConnection/rtcDispatcherCreated">;
3511
+ declare const rtcDisconnected: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcDisconnected">;
3512
+ declare const rtcManagerCreated: _reduxjs_toolkit.ActionCreatorWithPayload<RtcManager, "rtcConnection/rtcManagerCreated">;
3513
+ declare const rtcManagerDestroyed: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcManagerDestroyed">;
3514
+ declare const rtcManagerInitialized: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcManagerInitialized">;
3515
+ declare const isAcceptingStreams: _reduxjs_toolkit.ActionCreatorWithPayload<boolean, "rtcConnection/isAcceptingStreams">;
3516
+ declare const doConnectRtc: (args: void) => AppThunk<void>;
3517
+ declare const doDisconnectRtc: (args: void) => AppThunk<void>;
3518
+ declare const doHandleAcceptStreams: (args: StreamStatusUpdate[]) => AppThunk<void>;
3519
+ declare const doRtcReportStreamResolution: (args: StreamResolutionUpdate) => AppThunk<void>;
3520
+ declare const doRtcManagerCreated: (args: RtcManagerCreatedPayload) => AppThunk<void>;
3521
+ declare const doRtcManagerInitialize: (args: void) => AppThunk<void>;
3522
+ /**
3523
+ * Selectors
3524
+ */
3525
+ declare const selectRtcConnectionRaw: (state: RootState) => RtcConnectionState;
3526
+ declare const selectRtcManagerInitialized: (state: RootState) => boolean;
3527
+ declare const selectRtcManager: (state: RootState) => RtcManager | null;
3528
+ declare const selectRtcDispatcherCreated: (state: RootState) => boolean;
3529
+ declare const selectRtcIsCreatingDispatcher: (state: RootState) => boolean;
3530
+ declare const selectRtcStatus: (state: RootState) => "" | "reconnect" | "ready";
3531
+ declare const selectIsAcceptingStreams: (state: RootState) => boolean;
3532
+ declare const selectShouldConnectRtc: ((state: {
3533
+ app: AppState;
3534
+ chat: ChatState;
3535
+ cloudRecording: CloudRecordingState;
3536
+ deviceCredentials: DeviceCredentialsState;
3537
+ localMedia: LocalMediaState;
3538
+ localParticipant: LocalParticipantState;
3539
+ localScreenshare: LocalScreenshareState;
3540
+ organization: OrganizationState;
3541
+ remoteParticipants: RemoteParticipantState;
3542
+ roomConnection: RoomConnectionState;
3543
+ rtcAnalytics: rtcAnalyticsState;
3544
+ rtcConnection: RtcConnectionState;
3545
+ signalConnection: SignalConnectionState;
3546
+ streaming: StreamingState;
3547
+ waitingParticipants: WaitingParticipantsState;
3548
+ }) => boolean) & {
3549
+ clearCache: () => void;
3550
+ resultsCount: () => number;
3551
+ resetResultsCount: () => void;
3552
+ } & {
3553
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: boolean, resultFuncArgs_2: _whereby_jslib_media_src_utils_ServerSocket.default | null) => boolean;
3554
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: boolean, resultFuncArgs_2: _whereby_jslib_media_src_utils_ServerSocket.default | null) => boolean) & {
3555
+ clearCache: () => void;
3556
+ resultsCount: () => number;
3557
+ resetResultsCount: () => void;
3558
+ };
3559
+ lastResult: () => boolean;
3560
+ dependencies: [(state: RootState) => boolean, (state: RootState) => boolean, (state: {
3561
+ app: AppState;
3562
+ chat: ChatState;
3563
+ cloudRecording: CloudRecordingState;
3564
+ deviceCredentials: DeviceCredentialsState;
3565
+ localMedia: LocalMediaState;
3566
+ localParticipant: LocalParticipantState;
3567
+ localScreenshare: LocalScreenshareState;
3568
+ organization: OrganizationState;
3569
+ remoteParticipants: RemoteParticipantState;
3570
+ roomConnection: RoomConnectionState;
3571
+ rtcAnalytics: rtcAnalyticsState;
3572
+ rtcConnection: RtcConnectionState;
3573
+ signalConnection: SignalConnectionState;
3574
+ streaming: StreamingState;
3575
+ waitingParticipants: WaitingParticipantsState;
3576
+ }) => _whereby_jslib_media_src_utils_ServerSocket.default | null];
3577
+ recomputations: () => number;
3578
+ resetRecomputations: () => void;
3579
+ dependencyRecomputations: () => number;
3580
+ resetDependencyRecomputations: () => void;
3581
+ } & {
3582
+ argsMemoize: typeof reselect.weakMapMemoize;
3583
+ memoize: typeof reselect.weakMapMemoize;
3584
+ };
3585
+ declare const selectShouldInitializeRtc: ((state: {
3586
+ app: AppState;
3587
+ chat: ChatState;
3588
+ cloudRecording: CloudRecordingState;
3589
+ deviceCredentials: DeviceCredentialsState;
3590
+ localMedia: LocalMediaState;
3591
+ localParticipant: LocalParticipantState;
3592
+ localScreenshare: LocalScreenshareState;
3593
+ organization: OrganizationState;
3594
+ remoteParticipants: RemoteParticipantState;
3595
+ roomConnection: RoomConnectionState;
3596
+ rtcAnalytics: rtcAnalyticsState;
3597
+ rtcConnection: RtcConnectionState;
3598
+ signalConnection: SignalConnectionState;
3599
+ streaming: StreamingState;
3600
+ waitingParticipants: WaitingParticipantsState;
3601
+ }) => boolean) & {
3602
+ clearCache: () => void;
3603
+ resultsCount: () => number;
3604
+ resetResultsCount: () => void;
3605
+ } & {
3606
+ resultFunc: (resultFuncArgs_0: RtcManager | null, resultFuncArgs_1: boolean, resultFuncArgs_2: "" | "error" | "stopped" | "starting" | "started") => boolean;
3607
+ memoizedResultFunc: ((resultFuncArgs_0: RtcManager | null, resultFuncArgs_1: boolean, resultFuncArgs_2: "" | "error" | "stopped" | "starting" | "started") => boolean) & {
3608
+ clearCache: () => void;
3609
+ resultsCount: () => number;
3610
+ resetResultsCount: () => void;
3611
+ };
3612
+ lastResult: () => boolean;
3613
+ dependencies: [(state: RootState) => RtcManager | null, (state: RootState) => boolean, (state: {
3614
+ app: AppState;
3615
+ chat: ChatState;
3616
+ cloudRecording: CloudRecordingState;
3617
+ deviceCredentials: DeviceCredentialsState;
3618
+ localMedia: LocalMediaState;
3619
+ localParticipant: LocalParticipantState;
3620
+ localScreenshare: LocalScreenshareState;
3621
+ organization: OrganizationState;
3622
+ remoteParticipants: RemoteParticipantState;
3623
+ roomConnection: RoomConnectionState;
3624
+ rtcAnalytics: rtcAnalyticsState;
3625
+ rtcConnection: RtcConnectionState;
3626
+ signalConnection: SignalConnectionState;
3627
+ streaming: StreamingState;
3628
+ waitingParticipants: WaitingParticipantsState;
3629
+ }) => "" | "error" | "stopped" | "starting" | "started"];
3630
+ recomputations: () => number;
3631
+ resetRecomputations: () => void;
3632
+ dependencyRecomputations: () => number;
3633
+ resetDependencyRecomputations: () => void;
3634
+ } & {
3635
+ argsMemoize: typeof reselect.weakMapMemoize;
3636
+ memoize: typeof reselect.weakMapMemoize;
3637
+ };
3638
+ declare const selectShouldDisconnectRtc: ((state: {
3639
+ app: AppState;
3640
+ chat: ChatState;
3641
+ cloudRecording: CloudRecordingState;
3642
+ deviceCredentials: DeviceCredentialsState;
3643
+ localMedia: LocalMediaState;
3644
+ localParticipant: LocalParticipantState;
3645
+ localScreenshare: LocalScreenshareState;
3646
+ organization: OrganizationState;
3647
+ remoteParticipants: RemoteParticipantState;
3648
+ roomConnection: RoomConnectionState;
3649
+ rtcAnalytics: rtcAnalyticsState;
3650
+ rtcConnection: RtcConnectionState;
3651
+ signalConnection: SignalConnectionState;
3652
+ streaming: StreamingState;
3653
+ waitingParticipants: WaitingParticipantsState;
3654
+ }) => boolean) & {
3655
+ clearCache: () => void;
3656
+ resultsCount: () => number;
3657
+ resetResultsCount: () => void;
3658
+ } & {
3659
+ resultFunc: (resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: boolean) => boolean;
3660
+ memoizedResultFunc: ((resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: boolean) => boolean) & {
3661
+ clearCache: () => void;
3662
+ resultsCount: () => number;
3663
+ resetResultsCount: () => void;
3664
+ };
3665
+ lastResult: () => boolean;
3666
+ dependencies: [(state: RootState) => "" | "reconnect" | "ready", (state: {
3667
+ app: AppState;
3668
+ chat: ChatState;
3669
+ cloudRecording: CloudRecordingState;
3670
+ deviceCredentials: DeviceCredentialsState;
3671
+ localMedia: LocalMediaState;
3672
+ localParticipant: LocalParticipantState;
3673
+ localScreenshare: LocalScreenshareState;
3674
+ organization: OrganizationState;
3675
+ remoteParticipants: RemoteParticipantState;
3676
+ roomConnection: RoomConnectionState;
3677
+ rtcAnalytics: rtcAnalyticsState;
3678
+ rtcConnection: RtcConnectionState;
3679
+ signalConnection: SignalConnectionState;
3680
+ streaming: StreamingState;
3681
+ waitingParticipants: WaitingParticipantsState;
3682
+ }) => boolean];
3683
+ recomputations: () => number;
3684
+ resetRecomputations: () => void;
3685
+ dependencyRecomputations: () => number;
3686
+ resetDependencyRecomputations: () => void;
3687
+ } & {
3688
+ argsMemoize: typeof reselect.weakMapMemoize;
3689
+ memoize: typeof reselect.weakMapMemoize;
3690
+ };
3691
+ declare const selectStreamsToAccept: ((state: {
3692
+ app: AppState;
3693
+ chat: ChatState;
3694
+ cloudRecording: CloudRecordingState;
3695
+ deviceCredentials: DeviceCredentialsState;
3696
+ localMedia: LocalMediaState;
3697
+ localParticipant: LocalParticipantState;
3698
+ localScreenshare: LocalScreenshareState;
3699
+ organization: OrganizationState;
3700
+ remoteParticipants: RemoteParticipantState;
3701
+ roomConnection: RoomConnectionState;
3702
+ rtcAnalytics: rtcAnalyticsState;
3703
+ rtcConnection: RtcConnectionState;
3704
+ signalConnection: SignalConnectionState;
3705
+ streaming: StreamingState;
3706
+ waitingParticipants: WaitingParticipantsState;
3707
+ }) => {
3708
+ clientId: string;
3709
+ streamId: string;
3710
+ state: StreamState;
3711
+ }[]) & {
3712
+ clearCache: () => void;
3713
+ resultsCount: () => number;
3714
+ resetResultsCount: () => void;
3715
+ } & {
3716
+ resultFunc: (resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: RemoteParticipant[]) => {
3717
+ clientId: string;
3718
+ streamId: string;
3719
+ state: StreamState;
3720
+ }[];
3721
+ memoizedResultFunc: ((resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: RemoteParticipant[]) => {
3722
+ clientId: string;
3723
+ streamId: string;
3724
+ state: StreamState;
3725
+ }[]) & {
3726
+ clearCache: () => void;
3727
+ resultsCount: () => number;
3728
+ resetResultsCount: () => void;
3729
+ };
3730
+ lastResult: () => {
3731
+ clientId: string;
3732
+ streamId: string;
3733
+ state: StreamState;
3734
+ }[];
3735
+ dependencies: [(state: RootState) => "" | "reconnect" | "ready", (state: {
3736
+ app: AppState;
3737
+ chat: ChatState;
3738
+ cloudRecording: CloudRecordingState;
3739
+ deviceCredentials: DeviceCredentialsState;
3740
+ localMedia: LocalMediaState;
3741
+ localParticipant: LocalParticipantState;
3742
+ localScreenshare: LocalScreenshareState;
3743
+ organization: OrganizationState;
3744
+ remoteParticipants: RemoteParticipantState;
3745
+ roomConnection: RoomConnectionState;
3746
+ rtcAnalytics: rtcAnalyticsState;
3747
+ rtcConnection: RtcConnectionState;
3748
+ signalConnection: SignalConnectionState;
3749
+ streaming: StreamingState;
3750
+ waitingParticipants: WaitingParticipantsState;
3751
+ }) => RemoteParticipant[]];
3752
+ recomputations: () => number;
3753
+ resetRecomputations: () => void;
3754
+ dependencyRecomputations: () => number;
3755
+ resetDependencyRecomputations: () => void;
3756
+ } & {
3757
+ argsMemoize: typeof reselect.weakMapMemoize;
3758
+ memoize: typeof reselect.weakMapMemoize;
3759
+ };
3760
+
3761
+ /**
3762
+ * Reducer
3763
+ */
3764
+ interface SignalConnectionState {
3765
+ deviceIdentified: boolean;
3766
+ isIdentifyingDevice: boolean;
3767
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3768
+ socket: _whereby_jslib_media_src_utils_ServerSocket__default | null;
3769
+ }
3770
+ declare const signalConnectionSlice: _reduxjs_toolkit.Slice<SignalConnectionState, {
3771
+ socketConnecting: (state: {
3772
+ deviceIdentified: boolean;
3773
+ isIdentifyingDevice: boolean;
3774
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3775
+ socket: {
3776
+ connect: () => void;
3777
+ disconnect: () => void;
3778
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3779
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3780
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3781
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3782
+ } | null;
3783
+ }) => {
3784
+ status: "connecting";
3785
+ deviceIdentified: boolean;
3786
+ isIdentifyingDevice: boolean;
3787
+ socket: {
3788
+ connect: () => void;
3789
+ disconnect: () => void;
3790
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3791
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3792
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3793
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3794
+ } | null;
3795
+ };
3796
+ socketConnected: (state: {
3797
+ deviceIdentified: boolean;
3798
+ isIdentifyingDevice: boolean;
3799
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3800
+ socket: {
3801
+ connect: () => void;
3802
+ disconnect: () => void;
3803
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3804
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3805
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3806
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3807
+ } | null;
3808
+ }, action: PayloadAction<_whereby_jslib_media_src_utils_ServerSocket__default>) => {
3809
+ socket: _whereby_jslib_media_src_utils_ServerSocket__default;
3810
+ status: "connected";
3811
+ deviceIdentified: boolean;
3812
+ isIdentifyingDevice: boolean;
3813
+ };
3814
+ socketDisconnected: (state: {
3815
+ deviceIdentified: boolean;
3816
+ isIdentifyingDevice: boolean;
3817
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3818
+ socket: {
3819
+ connect: () => void;
3820
+ disconnect: () => void;
3821
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3822
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3823
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3824
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3825
+ } | null;
3826
+ }) => {
3827
+ status: "disconnected";
3828
+ deviceIdentified: boolean;
3829
+ isIdentifyingDevice: boolean;
3830
+ socket: {
3831
+ connect: () => void;
3832
+ disconnect: () => void;
3833
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3834
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3835
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3836
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3837
+ } | null;
3838
+ };
3839
+ socketReconnecting: (state: {
3840
+ deviceIdentified: boolean;
3841
+ isIdentifyingDevice: boolean;
3842
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3843
+ socket: {
3844
+ connect: () => void;
3845
+ disconnect: () => void;
3846
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3847
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3848
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3849
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3850
+ } | null;
3851
+ }) => {
3852
+ status: "reconnect";
3853
+ deviceIdentified: boolean;
3854
+ isIdentifyingDevice: boolean;
3855
+ socket: {
3856
+ connect: () => void;
3857
+ disconnect: () => void;
3858
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3859
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3860
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3861
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3862
+ } | null;
3863
+ };
3864
+ deviceIdentifying: (state: {
3865
+ deviceIdentified: boolean;
3866
+ isIdentifyingDevice: boolean;
3867
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3868
+ socket: {
3869
+ connect: () => void;
3870
+ disconnect: () => void;
3871
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3872
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3873
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3874
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3875
+ } | null;
3876
+ }) => {
3877
+ isIdentifyingDevice: true;
3878
+ deviceIdentified: boolean;
3879
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3880
+ socket: {
3881
+ connect: () => void;
3882
+ disconnect: () => void;
3883
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3884
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3885
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3886
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3887
+ } | null;
3888
+ };
3889
+ deviceIdentified: (state: {
3890
+ deviceIdentified: boolean;
3891
+ isIdentifyingDevice: boolean;
3892
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3893
+ socket: {
3894
+ connect: () => void;
3895
+ disconnect: () => void;
3896
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3897
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3898
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3899
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3900
+ } | null;
3901
+ }) => {
3902
+ deviceIdentified: true;
3903
+ isIdentifyingDevice: false;
3904
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
3905
+ socket: {
3906
+ connect: () => void;
3907
+ disconnect: () => void;
3908
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
3909
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
3910
+ on: <K_1 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_1, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_1]) => void) => any;
3911
+ once: <K_2 extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalEvents>(eventName: K_2, callback: (args: _whereby_jslib_media_src_utils_ServerSocket.SignalEvents[K_2]) => void) => any;
3912
+ } | null;
3913
+ };
3914
+ }, "signalConnection", "signalConnection", _reduxjs_toolkit.SliceSelectors<SignalConnectionState>>;
3915
+ declare const deviceIdentifying: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/deviceIdentifying">;
3916
+ declare const deviceIdentified: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/deviceIdentified">;
3917
+ declare const socketConnected: _reduxjs_toolkit.ActionCreatorWithPayload<_whereby_jslib_media_src_utils_ServerSocket__default, "signalConnection/socketConnected">;
3918
+ declare const socketConnecting: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketConnecting">;
3919
+ declare const socketDisconnected: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketDisconnected">;
3920
+ /**
3921
+ * Action creators
3922
+ */
3923
+ declare const doSignalSocketConnect: (args: void) => AppThunk<void>;
3924
+ declare const doSignalIdentifyDevice: (args: {
3925
+ deviceCredentials: Credentials;
3926
+ }) => AppThunk<void>;
3927
+ declare const doSignalDisconnect: (args: void) => AppThunk<void>;
3928
+ declare const doSignalReconnect: (args: void) => AppThunk<void>;
3929
+ declare const socketReconnecting: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketReconnecting">;
3930
+ /**
3931
+ * Selectors
3932
+ */
3933
+ declare const selectSignalConnectionRaw: (state: RootState) => SignalConnectionState;
3934
+ declare const selectSignalIsIdentifyingDevice: (state: RootState) => boolean;
3935
+ declare const selectSignalConnectionDeviceIdentified: (state: RootState) => boolean;
3936
+ declare const selectSignalStatus: (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected";
3937
+ declare const selectSignalConnectionSocket: (state: RootState) => _whereby_jslib_media_src_utils_ServerSocket__default | null;
3938
+ declare const selectShouldConnectSignal: ((state: {
3939
+ app: AppState;
3940
+ chat: ChatState;
3941
+ cloudRecording: CloudRecordingState;
3942
+ deviceCredentials: DeviceCredentialsState;
3943
+ localMedia: LocalMediaState;
3944
+ localParticipant: LocalParticipantState;
3945
+ localScreenshare: LocalScreenshareState;
3946
+ organization: OrganizationState;
3947
+ remoteParticipants: RemoteParticipantState;
3948
+ roomConnection: RoomConnectionState;
3949
+ rtcAnalytics: rtcAnalyticsState;
3950
+ rtcConnection: RtcConnectionState;
3951
+ signalConnection: SignalConnectionState;
3952
+ streaming: StreamingState;
3953
+ waitingParticipants: WaitingParticipantsState;
3954
+ }) => boolean) & {
3955
+ clearCache: () => void;
3956
+ resultsCount: () => number;
3957
+ resetResultsCount: () => void;
3958
+ } & {
3959
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected") => boolean;
3960
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected") => boolean) & {
3961
+ clearCache: () => void;
3962
+ resultsCount: () => number;
3963
+ resetResultsCount: () => void;
3964
+ };
3965
+ lastResult: () => boolean;
3966
+ dependencies: [(state: {
3967
+ app: AppState;
3968
+ chat: ChatState;
3969
+ cloudRecording: CloudRecordingState;
3970
+ deviceCredentials: DeviceCredentialsState;
3971
+ localMedia: LocalMediaState;
3972
+ localParticipant: LocalParticipantState;
3973
+ localScreenshare: LocalScreenshareState;
3974
+ organization: OrganizationState;
3975
+ remoteParticipants: RemoteParticipantState;
3976
+ roomConnection: RoomConnectionState;
3977
+ rtcAnalytics: rtcAnalyticsState;
3978
+ rtcConnection: RtcConnectionState;
3979
+ signalConnection: SignalConnectionState;
3980
+ streaming: StreamingState;
3981
+ waitingParticipants: WaitingParticipantsState;
3982
+ }) => boolean, (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected"];
3983
+ recomputations: () => number;
3984
+ resetRecomputations: () => void;
3985
+ dependencyRecomputations: () => number;
3986
+ resetDependencyRecomputations: () => void;
3987
+ } & {
3988
+ argsMemoize: typeof reselect.weakMapMemoize;
3989
+ memoize: typeof reselect.weakMapMemoize;
3990
+ };
3991
+ declare const selectShouldIdentifyDevice: ((state: {
3992
+ app: AppState;
3993
+ chat: ChatState;
3994
+ cloudRecording: CloudRecordingState;
3995
+ deviceCredentials: DeviceCredentialsState;
3996
+ localMedia: LocalMediaState;
3997
+ localParticipant: LocalParticipantState;
3998
+ localScreenshare: LocalScreenshareState;
3999
+ organization: OrganizationState;
4000
+ remoteParticipants: RemoteParticipantState;
4001
+ roomConnection: RoomConnectionState;
4002
+ rtcAnalytics: rtcAnalyticsState;
4003
+ rtcConnection: RtcConnectionState;
4004
+ signalConnection: SignalConnectionState;
4005
+ streaming: StreamingState;
4006
+ waitingParticipants: WaitingParticipantsState;
4007
+ }) => boolean) & {
4008
+ clearCache: () => void;
4009
+ resultsCount: () => number;
4010
+ resetResultsCount: () => void;
4011
+ } & {
4012
+ resultFunc: (resultFuncArgs_0: DeviceCredentialsState, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected", resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => boolean;
4013
+ memoizedResultFunc: ((resultFuncArgs_0: DeviceCredentialsState, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected", resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => boolean) & {
4014
+ clearCache: () => void;
4015
+ resultsCount: () => number;
4016
+ resetResultsCount: () => void;
4017
+ };
4018
+ lastResult: () => boolean;
4019
+ dependencies: [(state: {
4020
+ app: AppState;
4021
+ chat: ChatState;
4022
+ cloudRecording: CloudRecordingState;
4023
+ deviceCredentials: DeviceCredentialsState;
4024
+ localMedia: LocalMediaState;
4025
+ localParticipant: LocalParticipantState;
4026
+ localScreenshare: LocalScreenshareState;
4027
+ organization: OrganizationState;
4028
+ remoteParticipants: RemoteParticipantState;
4029
+ roomConnection: RoomConnectionState;
4030
+ rtcAnalytics: rtcAnalyticsState;
4031
+ rtcConnection: RtcConnectionState;
4032
+ signalConnection: SignalConnectionState;
4033
+ streaming: StreamingState;
4034
+ waitingParticipants: WaitingParticipantsState;
4035
+ }) => DeviceCredentialsState, (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected", (state: RootState) => boolean, (state: RootState) => boolean];
4036
+ recomputations: () => number;
4037
+ resetRecomputations: () => void;
4038
+ dependencyRecomputations: () => number;
4039
+ resetDependencyRecomputations: () => void;
4040
+ } & {
4041
+ argsMemoize: typeof reselect.weakMapMemoize;
4042
+ memoize: typeof reselect.weakMapMemoize;
4043
+ };
4044
+
4045
+ declare function createServices(): {
4046
+ credentialsService: CredentialsService;
4047
+ apiClient: ApiClient;
4048
+ organizationService: OrganizationService;
4049
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
4050
+ };
4051
+
4052
+ declare const rootReducer: redux.Reducer<{
4053
+ app: AppState;
4054
+ chat: ChatState;
4055
+ cloudRecording: CloudRecordingState;
4056
+ deviceCredentials: DeviceCredentialsState;
4057
+ localMedia: LocalMediaState;
4058
+ localParticipant: LocalParticipantState;
4059
+ localScreenshare: LocalScreenshareState;
4060
+ organization: OrganizationState;
4061
+ remoteParticipants: RemoteParticipantState;
4062
+ roomConnection: RoomConnectionState;
4063
+ rtcAnalytics: rtcAnalyticsState;
4064
+ rtcConnection: RtcConnectionState;
4065
+ signalConnection: SignalConnectionState;
4066
+ streaming: StreamingState;
4067
+ waitingParticipants: WaitingParticipantsState;
4068
+ }, redux.UnknownAction, Partial<{
4069
+ app: AppState | undefined;
4070
+ chat: ChatState | undefined;
4071
+ cloudRecording: CloudRecordingState | undefined;
4072
+ deviceCredentials: DeviceCredentialsState | undefined;
4073
+ localMedia: LocalMediaState | undefined;
4074
+ localParticipant: LocalParticipantState | undefined;
4075
+ localScreenshare: LocalScreenshareState | undefined;
4076
+ organization: OrganizationState | undefined;
4077
+ remoteParticipants: RemoteParticipantState | undefined;
4078
+ roomConnection: RoomConnectionState | undefined;
4079
+ rtcAnalytics: rtcAnalyticsState | undefined;
4080
+ rtcConnection: RtcConnectionState | undefined;
4081
+ signalConnection: SignalConnectionState | undefined;
4082
+ streaming: StreamingState | undefined;
4083
+ waitingParticipants: WaitingParticipantsState | undefined;
4084
+ }>>;
4085
+ declare const createStore: ({ preloadedState, injectServices, }: {
4086
+ preloadedState?: Partial<{
4087
+ app: AppState;
4088
+ chat: ChatState;
4089
+ cloudRecording: CloudRecordingState;
4090
+ deviceCredentials: DeviceCredentialsState;
4091
+ localMedia: LocalMediaState;
4092
+ localParticipant: LocalParticipantState;
4093
+ localScreenshare: LocalScreenshareState;
4094
+ organization: OrganizationState;
4095
+ remoteParticipants: RemoteParticipantState;
4096
+ roomConnection: RoomConnectionState;
4097
+ rtcAnalytics: rtcAnalyticsState;
4098
+ rtcConnection: RtcConnectionState;
4099
+ signalConnection: SignalConnectionState;
4100
+ streaming: StreamingState;
4101
+ waitingParticipants: WaitingParticipantsState;
4102
+ }> | undefined;
4103
+ injectServices: ReturnType<typeof createServices>;
4104
+ }) => _reduxjs_toolkit.EnhancedStore<{
4105
+ app: AppState;
4106
+ chat: ChatState;
4107
+ cloudRecording: CloudRecordingState;
4108
+ deviceCredentials: DeviceCredentialsState;
4109
+ localMedia: LocalMediaState;
4110
+ localParticipant: LocalParticipantState;
4111
+ localScreenshare: LocalScreenshareState;
4112
+ organization: OrganizationState;
4113
+ remoteParticipants: RemoteParticipantState;
4114
+ roomConnection: RoomConnectionState;
4115
+ rtcAnalytics: rtcAnalyticsState;
4116
+ rtcConnection: RtcConnectionState;
4117
+ signalConnection: SignalConnectionState;
4118
+ streaming: StreamingState;
4119
+ waitingParticipants: WaitingParticipantsState;
4120
+ }, redux.UnknownAction, _reduxjs_toolkit.Tuple<[redux.StoreEnhancer<{
4121
+ dispatch: ((action: redux.Action<"listenerMiddleware/add">) => _reduxjs_toolkit.UnsubscribeListener) & redux_thunk.ThunkDispatch<{
4122
+ app: AppState;
4123
+ chat: ChatState;
4124
+ cloudRecording: CloudRecordingState;
4125
+ deviceCredentials: DeviceCredentialsState;
4126
+ localMedia: LocalMediaState;
4127
+ localParticipant: LocalParticipantState;
4128
+ localScreenshare: LocalScreenshareState;
4129
+ organization: OrganizationState;
4130
+ remoteParticipants: RemoteParticipantState;
4131
+ roomConnection: RoomConnectionState;
4132
+ rtcAnalytics: rtcAnalyticsState;
4133
+ rtcConnection: RtcConnectionState;
4134
+ signalConnection: SignalConnectionState;
4135
+ streaming: StreamingState;
4136
+ waitingParticipants: WaitingParticipantsState;
4137
+ }, {
4138
+ services: {
4139
+ credentialsService: CredentialsService;
4140
+ apiClient: ApiClient;
4141
+ organizationService: OrganizationService;
4142
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
4143
+ };
4144
+ }, redux.UnknownAction>;
4145
+ }>, redux.StoreEnhancer]>>;
4146
+ type RootReducer = typeof rootReducer;
4147
+ type RootState = ReturnType<typeof rootReducer>;
4148
+ type AppDispatch = ReturnType<typeof createStore>["dispatch"];
4149
+ type Store = ReturnType<typeof createStore>;
4150
+ declare const observeStore: <T>(store: Store, select: (state: RootState) => T, onChange: (result: T) => void) => redux.Unsubscribe;
4151
+
4152
+ type ThunkConfig = {
4153
+ state: RootState;
4154
+ dispatch: AppDispatch;
4155
+ extra: {
4156
+ services: ReturnType<typeof createServices>;
4157
+ };
4158
+ };
4159
+ declare function createAppAsyncThunk<ReturnType, ArgType = undefined>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<ReturnType, ArgType, ThunkConfig>): AsyncThunk<ReturnType, ArgType, ThunkConfig>;
4160
+ type AppThunk<R = void> = (dispatch: AppDispatch, getState: () => RootState, extra: {
4161
+ services: ReturnType<typeof createServices>;
4162
+ }) => R;
4163
+ declare function createAppThunk<A = void>(thunk: (args: A) => AppThunk): (args: A) => AppThunk;
4164
+
4165
+ declare const listenerMiddleware: _reduxjs_toolkit.ListenerMiddlewareInstance<unknown, redux_thunk.ThunkDispatch<unknown, unknown, redux.UnknownAction>, unknown>;
4166
+ type AppStartListening = TypedStartListening<RootState, AppDispatch, ReturnType<typeof createServices>>;
4167
+ declare const startAppListening: AppStartListening;
4168
+ declare const addAppListener: TypedAddListener<{
4169
+ app: AppState;
4170
+ chat: ChatState;
4171
+ cloudRecording: CloudRecordingState;
4172
+ deviceCredentials: DeviceCredentialsState;
4173
+ localMedia: LocalMediaState;
4174
+ localParticipant: LocalParticipantState;
4175
+ localScreenshare: LocalScreenshareState;
4176
+ organization: OrganizationState;
4177
+ remoteParticipants: RemoteParticipantState;
4178
+ roomConnection: RoomConnectionState;
4179
+ rtcAnalytics: rtcAnalyticsState;
4180
+ rtcConnection: RtcConnectionState;
4181
+ signalConnection: SignalConnectionState;
4182
+ streaming: StreamingState;
4183
+ waitingParticipants: WaitingParticipantsState;
4184
+ }, ((action: redux.Action<"listenerMiddleware/add">) => _reduxjs_toolkit.UnsubscribeListener) & redux_thunk.ThunkDispatch<{
4185
+ app: AppState;
4186
+ chat: ChatState;
4187
+ cloudRecording: CloudRecordingState;
4188
+ deviceCredentials: DeviceCredentialsState;
4189
+ localMedia: LocalMediaState;
4190
+ localParticipant: LocalParticipantState;
4191
+ localScreenshare: LocalScreenshareState;
4192
+ organization: OrganizationState;
4193
+ remoteParticipants: RemoteParticipantState;
4194
+ roomConnection: RoomConnectionState;
4195
+ rtcAnalytics: rtcAnalyticsState;
4196
+ rtcConnection: RtcConnectionState;
4197
+ signalConnection: SignalConnectionState;
4198
+ streaming: StreamingState;
4199
+ waitingParticipants: WaitingParticipantsState;
4200
+ }, {
4201
+ services: {
4202
+ credentialsService: CredentialsService;
4203
+ apiClient: ApiClient;
4204
+ organizationService: OrganizationService;
4205
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
4206
+ };
4207
+ }, redux.UnknownAction> & redux.Dispatch<redux.UnknownAction>>;
4208
+ type SelectorResults<Selectors extends Selector<RootState, unknown>[]> = {
4209
+ [K in keyof Selectors]: Selectors[K] extends Selector<RootState, infer R> ? R : never;
4210
+ };
4211
+ /**
4212
+ * Creates a reactor that will be called whenever the provided selectors change.
4213
+ * Every reactor needs to update a piece of state that it depends on, to avoid infinite loops.
4214
+ * example:
4215
+ * ```ts
4216
+ * createReactor(
4217
+ * [selectAppWantsToJoin, selectDeviceCredentialsRaw],
4218
+ * ({ dispatch }, wantsToJoin, deviceCredentialsRaw) => {
4219
+ * if (wantsToJoin && deviceCredentialsRaw.data) {
4220
+ * dispatch(doSignalIdentifyDevice({ deviceCredentials: deviceCredentialsRaw.data }));
4221
+ * }
4222
+ * });
4223
+ * ```
4224
+ * @param selectors. The selectors to be used to check if the state has changed.
4225
+ * @param callback. The callback to be called on every action. The first argument is the listenerApi, the second argument is the result of the selectors.
4226
+ * @returns The unsubscribe function.
4227
+ */
4228
+ declare const createReactor: <Selectors extends Selector<{
4229
+ app: AppState;
4230
+ chat: ChatState;
4231
+ cloudRecording: CloudRecordingState;
4232
+ deviceCredentials: DeviceCredentialsState;
4233
+ localMedia: LocalMediaState;
4234
+ localParticipant: LocalParticipantState;
4235
+ localScreenshare: LocalScreenshareState;
4236
+ organization: OrganizationState;
4237
+ remoteParticipants: RemoteParticipantState;
4238
+ roomConnection: RoomConnectionState;
4239
+ rtcAnalytics: rtcAnalyticsState;
4240
+ rtcConnection: RtcConnectionState;
4241
+ signalConnection: SignalConnectionState;
4242
+ streaming: StreamingState;
4243
+ waitingParticipants: WaitingParticipantsState;
4244
+ }, unknown>[]>(selectors: readonly [...Selectors], callback: (api: {
4245
+ dispatch: AppDispatch;
4246
+ getState: () => RootState;
4247
+ extra: ReturnType<typeof createServices>;
4248
+ }, ...selectorValues: SelectorResults<Selectors>) => void | Promise<void>) => _reduxjs_toolkit.UnsubscribeListener;
4249
+
4250
+ declare const sdkVersion = "__SDK_VERSION__";
4251
+
4252
+ export { ApiClient, type AppDispatch, type AppStartListening, type AppState, type AppThunk, type ChatMessage, type ChatState, type CloudRecordingState, type ConnectionStatus, Credentials, CredentialsService, type DeviceCredentialsState, type LocalMediaOptions, type LocalMediaState, LocalParticipant, type LocalParticipantState, type LocalScreenshareState, OrganizationApiClient, OrganizationService, OrganizationServiceCache, type OrganizationState, type RemoteParticipant, type RemoteParticipantData, type RemoteParticipantState, type RoomConnectionState, RoomService, type RootReducer, type RootState, type RtcConnectionState, type Screenshare, type SignalConnectionState, type Store, type StreamState, type StreamingState, type ThunkConfig, type WaitingParticipant, type WaitingParticipantsState, addAppListener, appLeft, appSlice, chatSlice, cloudRecordingSlice, createAppAsyncThunk, createAppThunk, createReactor, createServices, createStore, createWebRtcEmitter, deviceBusy, deviceCredentialsSlice, deviceIdentified, deviceIdentifying, doAcceptWaitingParticipant, doAppJoin, doConnectRoom, doConnectRtc, doDisconnectRtc, doEnableAudio, doEnableVideo, doGetDeviceCredentials, doHandleAcceptStreams, doHandleStreamingStarted, doHandleStreamingStopped, doKnockRoom, doOrganizationFetch, doRejectWaitingParticipant, doRtcAnalyticsCustomEventsInitialize, doRtcManagerCreated, doRtcManagerInitialize, doRtcReportStreamResolution, doSendChatMessage, doSetDevice, doSetDisplayName, doSetLocalParticipant, doSignalDisconnect, doSignalIdentifyDevice, doSignalReconnect, doSignalSocketConnect, doStartCloudRecording, doStartLocalMedia, doStartScreenshare, doStopCloudRecording, doStopLocalMedia, doStopScreenshare, doSwitchLocalStream, doToggleCamera, doUpdateDeviceList, initialCloudRecordingState, initialLocalMediaState, isAcceptingStreams, listenerMiddleware, localMediaSlice, localMediaStopped, localParticipantSlice, localScreenshareSlice, localStreamMetadataUpdated, observeStore, organizationSlice, participantStreamAdded, participantStreamIdAdded, recordingRequestStarted, remoteParticipantsSlice, resolutionReported, roomConnectionSlice, rootReducer, rtcAnalyticsCustomEvents, rtcAnalyticsSlice, type rtcAnalyticsState, rtcConnectionSlice, rtcDisconnected, rtcDispatcherCreated, rtcManagerCreated, rtcManagerDestroyed, rtcManagerInitialized, sdkVersion, selectAppDisplayName, selectAppExternalId, selectAppRaw, selectAppRoomKey, selectAppRoomName, selectAppRoomUrl, selectAppSdkVersion, selectAppWantsToJoin, selectBusyDeviceIds, selectCameraDeviceError, selectCameraDevices, selectChatMessages, selectChatRaw, selectCloudRecordingError, selectCloudRecordingRaw, selectCloudRecordingStartedAt, selectCloudRecordingStatus, selectCurrentCameraDeviceId, selectCurrentMicrophoneDeviceId, selectDeviceCredentialsRaw, selectDeviceId, selectHasFetchedDeviceCredentials, selectIsAcceptingStreams, selectIsCameraEnabled, selectIsCloudRecording, selectIsLocalMediaStarting, selectIsMicrophoneEnabled, selectIsSettingCameraDevice, selectIsSettingMicrophoneDevice, selectIsToggleCamera, selectLocalMediaConstraintsOptions, selectLocalMediaDevices, selectLocalMediaIsSwitchingStream, selectLocalMediaOptions, selectLocalMediaOwnsStream, selectLocalMediaRaw, selectLocalMediaShouldStartWithOptions, selectLocalMediaShouldStop, selectLocalMediaStartError, selectLocalMediaStatus, selectLocalMediaStream, selectLocalParticipantIsScreenSharing, selectLocalParticipantRaw, selectLocalParticipantRole, selectLocalScreenshareRaw, selectLocalScreenshareStatus, selectLocalScreenshareStream, selectMicrophoneDeviceError, selectMicrophoneDevices, selectOrganizationId, selectOrganizationRaw, selectRemoteParticipants, selectRemoteParticipantsRaw, selectRoomConnectionRaw, selectRoomConnectionSession, selectRoomConnectionSessionId, selectRoomConnectionStatus, selectRtcConnectionRaw, selectRtcDispatcherCreated, selectRtcIsCreatingDispatcher, selectRtcManager, selectRtcManagerInitialized, selectRtcStatus, selectScreenshares, selectSelfId, selectShouldConnectRoom, selectShouldConnectRtc, selectShouldConnectSignal, selectShouldDisconnectRtc, selectShouldFetchDeviceCredentials, selectShouldFetchOrganization, selectShouldIdentifyDevice, selectShouldInitializeRtc, selectSignalConnectionDeviceIdentified, selectSignalConnectionRaw, selectSignalConnectionSocket, selectSignalIsIdentifyingDevice, selectSignalStatus, selectSpeakerDevices, selectStreamingRaw, selectStreamsToAccept, selectWaitingParticipants, selectWaitingParticipantsRaw, setCurrentCameraDeviceId, setCurrentMicrophoneDeviceId, setLocalMediaOptions, setLocalMediaStream, setRoomKey, signalConnectionSlice, socketConnected, socketConnecting, socketDisconnected, socketReconnecting, startAppListening, stopScreenshare, streamStatusUpdated, streamingSlice, toggleCameraEnabled, toggleMicrophoneEnabled, updateReportedValues, waitingParticipantsSlice };