@whereby.com/browser-sdk 2.1.0-beta1 → 2.1.0-beta3

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,2356 @@
1
+ import * as _reduxjs_toolkit from '@reduxjs/toolkit';
2
+ import { PayloadAction, AsyncThunkPayloadCreator, AsyncThunk, TypedStartListening, TypedAddListener, Selector } from '@reduxjs/toolkit';
3
+ import * as redux_thunk from 'redux-thunk';
4
+ import { AxiosRequestConfig } from 'axios';
5
+ import EventEmitter from 'events';
6
+ import * as redux from 'redux';
7
+ import * as reselect from 'reselect';
8
+ import * as _whereby_jslib_media_src_utils_ServerSocket from '@whereby/jslib-media/src/utils/ServerSocket';
9
+ import _whereby_jslib_media_src_utils_ServerSocket__default, { ChatMessage as ChatMessage$1 } from '@whereby/jslib-media/src/utils/ServerSocket';
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 * as _reduxjs_toolkit_dist_listenerMiddleware_types from '@reduxjs/toolkit/dist/listenerMiddleware/types';
13
+
14
+ type Json = string | number | boolean | null | Array<Json> | {
15
+ [key: string]: Json;
16
+ };
17
+ interface ResponseOptions {
18
+ data?: Json;
19
+ headers?: Record<string, unknown>;
20
+ status?: number;
21
+ statusText?: string;
22
+ url?: string | null;
23
+ }
24
+ declare class Response {
25
+ data: Json;
26
+ headers: Record<string, unknown>;
27
+ status: number;
28
+ statusText: string;
29
+ url: string | null;
30
+ constructor(initialValues?: ResponseOptions);
31
+ }
32
+
33
+ declare class EmbeddedFreeTierStatus {
34
+ isExhausted: boolean;
35
+ renewsAt: Date;
36
+ totalMinutesLimit: number;
37
+ totalMinutesUsed: number;
38
+ constructor({ isExhausted, renewsAt, totalMinutesLimit, totalMinutesUsed, }: {
39
+ isExhausted: boolean;
40
+ renewsAt: Date;
41
+ totalMinutesLimit: number;
42
+ totalMinutesUsed: number;
43
+ });
44
+ static fromJson(data: Record<string, unknown>): EmbeddedFreeTierStatus;
45
+ }
46
+
47
+ interface AccountProps {
48
+ basePlanId: string | null;
49
+ isDeactivated: boolean;
50
+ isOnTrial: boolean;
51
+ onTrialUntil: Date | null;
52
+ trialStatus: string | null;
53
+ embeddedFreeTierStatus: EmbeddedFreeTierStatus | null;
54
+ }
55
+ declare class Account {
56
+ basePlanId: string | null;
57
+ embeddedFreeTierStatus: EmbeddedFreeTierStatus | null;
58
+ isDeactivated: boolean;
59
+ isOnTrial: boolean;
60
+ onTrialUntil: Date | null;
61
+ trialStatus: string | null;
62
+ constructor({ basePlanId, embeddedFreeTierStatus, isDeactivated, isOnTrial, onTrialUntil, trialStatus, }: AccountProps);
63
+ static fromJson(data: Record<string, unknown>): Account;
64
+ }
65
+
66
+ interface OrganizationPermissionAction {
67
+ isAllowed: boolean;
68
+ isSupported: boolean;
69
+ }
70
+ interface FullOrganizationPermissions {
71
+ images: {
72
+ logoImageUrl: {
73
+ set: OrganizationPermissionAction;
74
+ reset: OrganizationPermissionAction;
75
+ };
76
+ roomBackgroundImageUrl: {
77
+ set: OrganizationPermissionAction;
78
+ reset: OrganizationPermissionAction;
79
+ };
80
+ roomKnockPageBackgroundImageUrl: {
81
+ set: OrganizationPermissionAction;
82
+ reset: OrganizationPermissionAction;
83
+ };
84
+ };
85
+ invitations: {
86
+ add: OrganizationPermissionAction;
87
+ delete: OrganizationPermissionAction;
88
+ list: OrganizationPermissionAction;
89
+ };
90
+ roles: {
91
+ set: OrganizationPermissionAction;
92
+ remove: OrganizationPermissionAction;
93
+ removeSelf: OrganizationPermissionAction;
94
+ list: OrganizationPermissionAction;
95
+ };
96
+ users: {
97
+ signUpWithoutInvitation: OrganizationPermissionAction;
98
+ };
99
+ rooms: {
100
+ customize: OrganizationPermissionAction;
101
+ customizeSelf: OrganizationPermissionAction;
102
+ list: OrganizationPermissionAction;
103
+ lock: OrganizationPermissionAction;
104
+ unclaim: OrganizationPermissionAction;
105
+ unclaimSelf: OrganizationPermissionAction;
106
+ };
107
+ subscriptions: {
108
+ add: OrganizationPermissionAction;
109
+ list: OrganizationPermissionAction;
110
+ payLatestInvoice: OrganizationPermissionAction;
111
+ updatePlan: OrganizationPermissionAction;
112
+ };
113
+ browserExtension: {
114
+ install: OrganizationPermissionAction;
115
+ };
116
+ }
117
+ type OrganizationPermissions = Partial<FullOrganizationPermissions>;
118
+ interface OrganizationLimits {
119
+ maxNumberOfInvitationsAndUsers: number | null;
120
+ maxNumberOfClaimedRooms: number | null;
121
+ maxRoomLimitPerOrganization: number | null;
122
+ trialMinutesLimit: number | null;
123
+ includedUnits: number | null;
124
+ }
125
+ interface OrganizationOnboardingSurvey {
126
+ name: string;
127
+ value: unknown;
128
+ }
129
+ type OrganizationPreferences = Record<string, boolean | string | null | number>;
130
+ declare class Organization {
131
+ static GLOBAL_ORGANIZATION_ID: string;
132
+ organizationId: string;
133
+ organizationName: string;
134
+ subdomain: string;
135
+ permissions: OrganizationPermissions;
136
+ limits: OrganizationLimits;
137
+ account: Account | null;
138
+ logoImageUrl: string | null;
139
+ roomBackgroundImageUrl: string | null;
140
+ roomBackgroundThumbnailUrl: string | null;
141
+ roomKnockPageBackgroundImageUrl: string | null;
142
+ roomKnockPageBackgroundThumbnailUrl: string | null;
143
+ preferences: OrganizationPreferences | null;
144
+ onboardingSurvey: OrganizationOnboardingSurvey | null;
145
+ type: string | null;
146
+ constructor(properties: {
147
+ account: Account | null;
148
+ organizationId: string;
149
+ organizationName: string;
150
+ subdomain: string;
151
+ permissions: OrganizationPermissions;
152
+ limits: OrganizationLimits;
153
+ logoImageUrl: string | null;
154
+ roomBackgroundImageUrl: string | null;
155
+ roomBackgroundThumbnailUrl: string | null;
156
+ roomKnockPageBackgroundImageUrl: string | null;
157
+ roomKnockPageBackgroundThumbnailUrl: string | null;
158
+ preferences: OrganizationPreferences | null;
159
+ onboardingSurvey: OrganizationOnboardingSurvey | null;
160
+ type: string | null;
161
+ });
162
+ static fromJson(data: Json): Organization;
163
+ }
164
+
165
+ type HttpClientRequestConfig = AxiosRequestConfig | {
166
+ [key: string]: unknown;
167
+ };
168
+ interface IHttpClient {
169
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
170
+ }
171
+ /**
172
+ * Class used for making http calls. This is just a pure
173
+ * wrapper around the http lib that we decide to use,
174
+ * so that we can switch implementations.
175
+ */
176
+ declare class HttpClient implements IHttpClient {
177
+ _baseUrl: string;
178
+ /**
179
+ * Creates an HttpClient instance.
180
+ *
181
+ * @param {string} [baseUrl] - The base URL where all requests are made.
182
+ */
183
+ constructor({ baseUrl }: {
184
+ baseUrl: string;
185
+ });
186
+ private _requestAxios;
187
+ /**
188
+ * Wrapper for the axios API
189
+ *
190
+ * @param {string} url - Required. URL (appended to base URL) where API call will be made
191
+ * @param {object} options - Required. Contains the data needed for the fetch API
192
+ * @return {Promise<Response>} - A promise which will return a Response object (https://developer.mozilla.org/en-US/docs/Web/API/Response)
193
+ */
194
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
195
+ }
196
+
197
+ /**
198
+ * ApiClient for doing multipart/form-data requests.
199
+ */
200
+ declare class MultipartHttpClient implements IHttpClient {
201
+ _httpClient: IHttpClient;
202
+ constructor({ httpClient }: {
203
+ httpClient: IHttpClient;
204
+ });
205
+ /**
206
+ * Convert the provided object to a FormData object containing the same keys and values.
207
+ * @param {object} data - the data to convert.
208
+ * @returns {FormData}
209
+ */
210
+ static dataToFormData(data: Record<string, string>): FormData;
211
+ /**
212
+ * Request a resource using multipart/form-data encoding.
213
+ *
214
+ * @param {string} url - the url to request
215
+ * @param {object} options - Required. Contains the data needed for the fetch API
216
+ * @return {Promise<Response>} - A promise which will return a Response object (https://developer.mozilla.org/en-US/docs/Web/API/Response)
217
+ */
218
+ request(url: string, options?: HttpClientRequestConfig): Promise<Response>;
219
+ }
220
+
221
+ interface CredentialsOptions {
222
+ uuid: string;
223
+ hmac: string;
224
+ userId?: string;
225
+ }
226
+ declare class Credentials {
227
+ credentials: {
228
+ uuid: CredentialsOptions["uuid"];
229
+ };
230
+ hmac: CredentialsOptions["hmac"];
231
+ userId: CredentialsOptions["userId"];
232
+ constructor(uuid: CredentialsOptions["uuid"], hmac: CredentialsOptions["hmac"], userId?: CredentialsOptions["userId"]);
233
+ toJson(): Json;
234
+ static fromJson(json: Json): Credentials;
235
+ }
236
+
237
+ interface AuthenticatedHttpClientOptions {
238
+ httpClient: HttpClient;
239
+ fetchDeviceCredentials: () => Promise<Credentials | null>;
240
+ }
241
+ declare class AuthenticatedHttpClient {
242
+ private _httpClient;
243
+ private _fetchDeviceCredentials;
244
+ constructor({ httpClient, fetchDeviceCredentials }: AuthenticatedHttpClientOptions);
245
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
246
+ }
247
+ interface ApiClientOptions {
248
+ baseUrl?: string;
249
+ fetchDeviceCredentials?: AuthenticatedHttpClientOptions["fetchDeviceCredentials"];
250
+ }
251
+ /**
252
+ * Class used for all Whereby API calls.
253
+ */
254
+ declare class ApiClient {
255
+ authenticatedHttpClient: AuthenticatedHttpClient;
256
+ authenticatedFormDataHttpClient: MultipartHttpClient;
257
+ /**
258
+ * Create an ApiClient instance.
259
+ */
260
+ constructor({ baseUrl, fetchDeviceCredentials, }?: ApiClientOptions);
261
+ /**
262
+ * Wrapper for the fetch API
263
+ */
264
+ request(url: string, options: HttpClientRequestConfig): Promise<Response>;
265
+ /**
266
+ * Performs a multipart request where data is multipart/form-data encoded.
267
+ */
268
+ requestMultipart(url: string, options: HttpClientRequestConfig): Promise<Response>;
269
+ }
270
+
271
+ /**
272
+ * Related to device calls needed to obtain credentials
273
+ */
274
+ declare class DeviceService {
275
+ _apiClient: ApiClient;
276
+ constructor({ apiClient }: {
277
+ apiClient: ApiClient;
278
+ });
279
+ /**
280
+ * Get's the device credentials needed for most of the other API services
281
+ *
282
+ * @return {Promise} A promise which is fulfilled or failed based on the
283
+ * response.
284
+ */
285
+ getCredentials(): Promise<Credentials | null>;
286
+ }
287
+
288
+ interface AbstractStore {
289
+ loadOrDefault(defaultValue: Json): Promise<Json>;
290
+ save(value: Json): Promise<void>;
291
+ }
292
+
293
+ declare class CredentialsService extends EventEmitter {
294
+ _deviceService: DeviceService;
295
+ _credentialsStore: AbstractStore;
296
+ credentialsPromise?: Promise<Credentials | null>;
297
+ /**
298
+ * Service to manage Whereby's Rest API credentials.
299
+ *
300
+ * @param {ObjectStore} credentialsStore - Store to manage the credentials.
301
+ */
302
+ constructor({ deviceService, credentialsStore, }: {
303
+ deviceService: DeviceService;
304
+ credentialsStore: AbstractStore;
305
+ });
306
+ static create({ baseUrl, storeName, storeType, }: {
307
+ baseUrl: string;
308
+ storeName?: string;
309
+ storeType?: "localStorage" | "chromeStorage";
310
+ }): CredentialsService;
311
+ /**
312
+ * Contacts the REST API to get new credentials. DO NOT USE directly, call getCredentials() instead.
313
+ *
314
+ * @see getCredentials
315
+ * @returns {Promise.<Credentials>} - Promise that resolves with the credentials.
316
+ */
317
+ _fetchNewCredentialsFromApi(): Promise<Credentials | null>;
318
+ /**
319
+ * Returns the current credentials without triggering an API request to get new ones.
320
+ * If no credentials are currently available it will return null.
321
+ *
322
+ * @returns {?Credentials} - The credentials currently in use, null otherwise.
323
+ */
324
+ getCurrentCredentials(): Promise<Credentials | null>;
325
+ /**
326
+ * Returns a promise that will contain the credentials for this client.
327
+ * If no credentials are available in local storage, new ones will be fetched from the server.
328
+ *
329
+ * @returns {Promise.<Credentials>} - Promise that resolves with the credentials.
330
+ */
331
+ getCredentials(): Promise<Credentials | null>;
332
+ /**
333
+ * Saves new credentials which replace the existing ones and abort any pending request to get new ones.
334
+ *
335
+ * @param {Credentials} credentials - New credentials to store.
336
+ */
337
+ saveCredentials(credentials: Credentials): Promise<Credentials>;
338
+ /**
339
+ * It will set the userId for the current credentials.
340
+ *
341
+ * @param userId - The user id to set.
342
+ */
343
+ setUserId(userId: string | null): Promise<void>;
344
+ }
345
+
346
+ type UserConsentAction = "accepted" | "rejected" | null;
347
+ type ConsentGrantRequest = {
348
+ readonly consentRevisionId: string;
349
+ readonly action: UserConsentAction;
350
+ };
351
+
352
+ declare class OrganizationService {
353
+ _apiClient: ApiClient;
354
+ constructor({ apiClient }: {
355
+ apiClient: ApiClient;
356
+ });
357
+ /**
358
+ * Creates an organization.
359
+ */
360
+ createOrganization({ organizationName, subdomain, owner, }: {
361
+ organizationName: string;
362
+ subdomain: string;
363
+ owner: {
364
+ email: string;
365
+ displayName: string;
366
+ verificationCode: string;
367
+ consents?: ReadonlyArray<ConsentGrantRequest>;
368
+ } | {
369
+ idToken: string;
370
+ displayName: string;
371
+ consents?: ReadonlyArray<ConsentGrantRequest>;
372
+ };
373
+ }): Promise<string>;
374
+ /**
375
+ * Retrieves the organization based on the subdomain.
376
+ */
377
+ getOrganizationBySubdomain(subdomain: string): Promise<Organization | null>;
378
+ /**
379
+ * Retrieves the organization based on the organizationId.
380
+ *
381
+ * Note: This endpoint should only be used to retrieve an organization when the device is linked
382
+ * to a user in that organization. Use getOrganizationBySubdomain instead if you just want the information
383
+ * about an organization that is mapped to a given subdomain.
384
+ */
385
+ getOrganizationByOrganizationId(organizationId: string): Promise<Organization | null>;
386
+ /**
387
+ * Retrieves the organizations that contain a user
388
+ * matching provided the email+code or phoneNumber+code
389
+ * combination.
390
+ */
391
+ getOrganizationsByContactPoint(options: {
392
+ email: string;
393
+ code: string;
394
+ } | {
395
+ phoneNumber: string;
396
+ code: string;
397
+ }): Promise<ReadonlyArray<Organization>>;
398
+ /**
399
+ * Retrieves the organizations that contain a user
400
+ * matching provided the idToken
401
+ */
402
+ getOrganizationsByIdToken({ idToken }: {
403
+ idToken: string;
404
+ }): Promise<ReadonlyArray<Organization>>;
405
+ /**
406
+ * Retrieves the organizations containing a user
407
+ * with either the email or phoneNumber matching the logged in user.
408
+ *
409
+ * This is useful for showing the possible organization that the current
410
+ * user could log in to.
411
+ */
412
+ getOrganizationsByLoggedInUser(): Promise<ReadonlyArray<Organization>>;
413
+ /**
414
+ * Checks if a subdomain is available and verifies its format.
415
+ */
416
+ getSubdomainAvailability(subdomain: string): Promise<{
417
+ status: string;
418
+ }>;
419
+ /**
420
+ * Updates preferences of the organization.
421
+ */
422
+ updatePreferences({ organizationId, preferences, }: {
423
+ organizationId: string;
424
+ preferences: OrganizationPreferences;
425
+ }): Promise<undefined>;
426
+ /**
427
+ * Delete organization
428
+ */
429
+ deleteOrganization({ organizationId }: {
430
+ organizationId: string;
431
+ }): Promise<undefined>;
432
+ }
433
+
434
+ interface RoomParticipantData {
435
+ displayName: string;
436
+ id: string;
437
+ stream?: MediaStream;
438
+ isAudioEnabled: boolean;
439
+ isVideoEnabled: boolean;
440
+ }
441
+ declare class RoomParticipant {
442
+ readonly displayName: string;
443
+ readonly id: string;
444
+ readonly stream?: MediaStream;
445
+ readonly isAudioEnabled: boolean;
446
+ readonly isLocalParticipant: boolean;
447
+ readonly isVideoEnabled: boolean;
448
+ constructor({ displayName, id, stream, isAudioEnabled, isVideoEnabled }: RoomParticipantData);
449
+ }
450
+ type StreamState = "new_accept" | "to_accept" | "old_accept" | "done_accept" | "to_unaccept" | "done_unaccept" | "auto";
451
+ interface Stream {
452
+ id: string;
453
+ state: StreamState;
454
+ }
455
+ interface RemoteParticipant {
456
+ id: string;
457
+ displayName: string;
458
+ isAudioEnabled: boolean;
459
+ isVideoEnabled: boolean;
460
+ isLocalParticipant: boolean;
461
+ stream: (MediaStream & {
462
+ inboundId?: string;
463
+ }) | null;
464
+ streams: Stream[];
465
+ newJoiner: boolean;
466
+ presentationStream: (MediaStream & {
467
+ inboundId?: string;
468
+ }) | null;
469
+ }
470
+ declare class LocalParticipant extends RoomParticipant {
471
+ readonly isLocalParticipant = true;
472
+ constructor({ displayName, id, stream, isAudioEnabled, isVideoEnabled }: RoomParticipantData);
473
+ }
474
+ interface WaitingParticipant {
475
+ id: string;
476
+ displayName: string | null;
477
+ }
478
+ interface Screenshare {
479
+ participantId: string;
480
+ id: string;
481
+ hasAudioTrack: boolean;
482
+ stream?: MediaStream;
483
+ isLocal: boolean;
484
+ }
485
+
486
+ /**
487
+ * Reducer
488
+ */
489
+ interface WaitingParticipantsState {
490
+ waitingParticipants: WaitingParticipant[];
491
+ }
492
+
493
+ /**
494
+ * Reducer
495
+ */
496
+ interface StreamingState {
497
+ isStreaming: boolean;
498
+ error: unknown;
499
+ startedAt?: number;
500
+ }
501
+
502
+ /**
503
+ * Reducer
504
+ */
505
+ interface rtcAnalyticsState {
506
+ reportedValues: {
507
+ [key: string]: unknown;
508
+ };
509
+ }
510
+
511
+ interface LocalScreenshareState {
512
+ status: "" | "starting" | "active";
513
+ stream: MediaStream | null;
514
+ error: unknown | null;
515
+ }
516
+
517
+ /**
518
+ * Reducer
519
+ */
520
+ interface CloudRecordingState {
521
+ isRecording: boolean;
522
+ error: unknown;
523
+ status?: "recording" | "requested" | "error";
524
+ startedAt?: number;
525
+ }
526
+
527
+ type ChatMessage = Pick<ChatMessage$1, "senderId" | "timestamp" | "text">;
528
+ /**
529
+ * Reducer
530
+ */
531
+ interface ChatState {
532
+ chatMessages: ChatMessage[];
533
+ }
534
+
535
+ /**
536
+ * Reducer
537
+ */
538
+ interface AppState {
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
+ isNodeSdk: boolean;
547
+ }
548
+ declare const appSlice: _reduxjs_toolkit.Slice<AppState, {
549
+ doAppJoin: (state: {
550
+ wantsToJoin: boolean;
551
+ roomUrl: string | null;
552
+ roomName: string | null;
553
+ roomKey: string | null;
554
+ displayName: string | null;
555
+ sdkVersion: string | null;
556
+ externalId: string | null;
557
+ isNodeSdk: boolean;
558
+ }, action: PayloadAction<{
559
+ displayName: string;
560
+ localMediaOptions?: LocalMediaOptions;
561
+ roomKey: string | null;
562
+ roomUrl: string;
563
+ sdkVersion: string;
564
+ externalId: string | null;
565
+ }>) => {
566
+ roomName: string;
567
+ wantsToJoin: true;
568
+ displayName: string;
569
+ localMediaOptions?: LocalMediaOptions | undefined;
570
+ roomKey: string | null;
571
+ roomUrl: string;
572
+ sdkVersion: string;
573
+ externalId: string | null;
574
+ isNodeSdk: boolean;
575
+ };
576
+ appLeft: (state: {
577
+ wantsToJoin: boolean;
578
+ roomUrl: string | null;
579
+ roomName: string | null;
580
+ roomKey: string | null;
581
+ displayName: string | null;
582
+ sdkVersion: string | null;
583
+ externalId: string | null;
584
+ isNodeSdk: boolean;
585
+ }) => {
586
+ wantsToJoin: false;
587
+ roomUrl: string | null;
588
+ roomName: string | null;
589
+ roomKey: string | null;
590
+ displayName: string | null;
591
+ sdkVersion: string | null;
592
+ externalId: string | null;
593
+ isNodeSdk: boolean;
594
+ };
595
+ setRoomKey: (state: {
596
+ wantsToJoin: boolean;
597
+ roomUrl: string | null;
598
+ roomName: string | null;
599
+ roomKey: string | null;
600
+ displayName: string | null;
601
+ sdkVersion: string | null;
602
+ externalId: string | null;
603
+ isNodeSdk: boolean;
604
+ }, action: PayloadAction<string>) => {
605
+ roomKey: string;
606
+ wantsToJoin: boolean;
607
+ roomUrl: string | null;
608
+ roomName: string | null;
609
+ displayName: string | null;
610
+ sdkVersion: string | null;
611
+ externalId: string | null;
612
+ isNodeSdk: boolean;
613
+ };
614
+ }, "app", "app", _reduxjs_toolkit.SliceSelectors<AppState>>;
615
+ /**
616
+ * Action creators
617
+ */
618
+ declare const doAppJoin: _reduxjs_toolkit.ActionCreatorWithPayload<{
619
+ displayName: string;
620
+ localMediaOptions?: LocalMediaOptions | undefined;
621
+ roomKey: string | null;
622
+ roomUrl: string;
623
+ sdkVersion: string;
624
+ externalId: string | null;
625
+ }, "app/doAppJoin">;
626
+ declare const appLeft: _reduxjs_toolkit.ActionCreatorWithoutPayload<"app/appLeft">;
627
+ declare const setRoomKey: _reduxjs_toolkit.ActionCreatorWithPayload<string, "app/setRoomKey">;
628
+ /**
629
+ * Selectors
630
+ */
631
+ declare const selectAppRaw: (state: RootState) => AppState;
632
+ declare const selectAppWantsToJoin: (state: RootState) => boolean;
633
+ declare const selectAppRoomName: (state: RootState) => string | null;
634
+ declare const selectAppRoomUrl: (state: RootState) => string | null;
635
+ declare const selectAppRoomKey: (state: RootState) => string | null;
636
+ declare const selectAppDisplayName: (state: RootState) => string | null;
637
+ declare const selectAppSdkVersion: (state: RootState) => string | null;
638
+ declare const selectAppExternalId: (state: RootState) => string | null;
639
+ declare const selectAppIsNodeSdk: (state: RootState) => boolean;
640
+
641
+ /**
642
+ * Reducer
643
+ */
644
+ interface DeviceCredentialsState {
645
+ isFetching: boolean;
646
+ data?: Credentials | null;
647
+ }
648
+
649
+ type LocalMediaOptions = {
650
+ disabled?: boolean;
651
+ audio: boolean;
652
+ video: boolean;
653
+ };
654
+ /**
655
+ * Reducer
656
+ */
657
+ interface LocalMediaState {
658
+ busyDeviceIds: string[];
659
+ cameraDeviceError?: unknown;
660
+ cameraEnabled: boolean;
661
+ currentCameraDeviceId?: string;
662
+ currentMicrophoneDeviceId?: string;
663
+ devices: MediaDeviceInfo[];
664
+ isSettingCameraDevice: boolean;
665
+ isSettingMicrophoneDevice: boolean;
666
+ isTogglingCamera: boolean;
667
+ microphoneDeviceError?: unknown;
668
+ microphoneEnabled: boolean;
669
+ options?: LocalMediaOptions;
670
+ status: "" | "stopped" | "starting" | "started" | "error";
671
+ startError?: unknown;
672
+ stream?: MediaStream;
673
+ isSwitchingStream: boolean;
674
+ onDeviceChange?: () => void;
675
+ }
676
+
677
+ type LocalParticipantState$1 = LocalParticipant;
678
+
679
+ declare const sdkVersion = "__SDK_VERSION__";
680
+
681
+ interface LocalParticipantState extends LocalParticipantState$1 {
682
+ isScreenSharing: boolean;
683
+ roleName: string;
684
+ }
685
+
686
+ /**
687
+ * Reducer
688
+ */
689
+ interface OrganizationState {
690
+ data: Organization | null | undefined;
691
+ isFetching: boolean;
692
+ error: unknown;
693
+ }
694
+
695
+ interface StreamStatusUpdate {
696
+ clientId: string;
697
+ streamId: string;
698
+ state: StreamState;
699
+ }
700
+
701
+ /**
702
+ * Reducer
703
+ */
704
+ interface RemoteParticipantState {
705
+ remoteParticipants: RemoteParticipant[];
706
+ }
707
+ declare const remoteParticipantsSlice: _reduxjs_toolkit.Slice<RemoteParticipantState, {
708
+ streamStatusUpdated: (state: {
709
+ remoteParticipants: {
710
+ id: string;
711
+ displayName: string;
712
+ isAudioEnabled: boolean;
713
+ isVideoEnabled: boolean;
714
+ isLocalParticipant: boolean;
715
+ stream: {
716
+ active: boolean;
717
+ id: string;
718
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
719
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
720
+ addTrack: (track: MediaStreamTrack) => void;
721
+ clone: () => MediaStream;
722
+ getAudioTracks: () => MediaStreamTrack[];
723
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
724
+ getTracks: () => MediaStreamTrack[];
725
+ getVideoTracks: () => MediaStreamTrack[];
726
+ removeTrack: (track: MediaStreamTrack) => void;
727
+ addEventListener: {
728
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
729
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
730
+ };
731
+ removeEventListener: {
732
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
733
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
734
+ };
735
+ dispatchEvent: (event: Event) => boolean;
736
+ inboundId?: string | undefined;
737
+ } | null;
738
+ streams: {
739
+ id: string;
740
+ state: StreamState;
741
+ }[];
742
+ newJoiner: boolean;
743
+ presentationStream: {
744
+ active: boolean;
745
+ id: string;
746
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
747
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
748
+ addTrack: (track: MediaStreamTrack) => void;
749
+ clone: () => MediaStream;
750
+ getAudioTracks: () => MediaStreamTrack[];
751
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
752
+ getTracks: () => MediaStreamTrack[];
753
+ getVideoTracks: () => MediaStreamTrack[];
754
+ removeTrack: (track: MediaStreamTrack) => void;
755
+ addEventListener: {
756
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
757
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
758
+ };
759
+ removeEventListener: {
760
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
761
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
762
+ };
763
+ dispatchEvent: (event: Event) => boolean;
764
+ inboundId?: string | undefined;
765
+ } | null;
766
+ }[];
767
+ }, action: PayloadAction<StreamStatusUpdate[]>) => {
768
+ remoteParticipants: {
769
+ id: string;
770
+ displayName: string;
771
+ isAudioEnabled: boolean;
772
+ isVideoEnabled: boolean;
773
+ isLocalParticipant: boolean;
774
+ stream: {
775
+ active: boolean;
776
+ id: string;
777
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
778
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
779
+ addTrack: (track: MediaStreamTrack) => void;
780
+ clone: () => MediaStream;
781
+ getAudioTracks: () => MediaStreamTrack[];
782
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
783
+ getTracks: () => MediaStreamTrack[];
784
+ getVideoTracks: () => MediaStreamTrack[];
785
+ removeTrack: (track: MediaStreamTrack) => void;
786
+ addEventListener: {
787
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
788
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
789
+ };
790
+ removeEventListener: {
791
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
792
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
793
+ };
794
+ dispatchEvent: (event: Event) => boolean;
795
+ inboundId?: string | undefined;
796
+ } | null;
797
+ streams: {
798
+ id: string;
799
+ state: StreamState;
800
+ }[];
801
+ newJoiner: boolean;
802
+ presentationStream: {
803
+ active: boolean;
804
+ id: string;
805
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
806
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
807
+ addTrack: (track: MediaStreamTrack) => void;
808
+ clone: () => MediaStream;
809
+ getAudioTracks: () => MediaStreamTrack[];
810
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
811
+ getTracks: () => MediaStreamTrack[];
812
+ getVideoTracks: () => MediaStreamTrack[];
813
+ removeTrack: (track: MediaStreamTrack) => void;
814
+ addEventListener: {
815
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
816
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
817
+ };
818
+ removeEventListener: {
819
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
820
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
821
+ };
822
+ dispatchEvent: (event: Event) => boolean;
823
+ inboundId?: string | undefined;
824
+ } | null;
825
+ }[];
826
+ };
827
+ participantStreamAdded: (state: {
828
+ remoteParticipants: {
829
+ id: string;
830
+ displayName: string;
831
+ isAudioEnabled: boolean;
832
+ isVideoEnabled: boolean;
833
+ isLocalParticipant: boolean;
834
+ stream: {
835
+ active: boolean;
836
+ id: string;
837
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
838
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
839
+ addTrack: (track: MediaStreamTrack) => void;
840
+ clone: () => MediaStream;
841
+ getAudioTracks: () => MediaStreamTrack[];
842
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
843
+ getTracks: () => MediaStreamTrack[];
844
+ getVideoTracks: () => MediaStreamTrack[];
845
+ removeTrack: (track: MediaStreamTrack) => void;
846
+ addEventListener: {
847
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
848
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
849
+ };
850
+ removeEventListener: {
851
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
852
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
853
+ };
854
+ dispatchEvent: (event: Event) => boolean;
855
+ inboundId?: string | undefined;
856
+ } | null;
857
+ streams: {
858
+ id: string;
859
+ state: StreamState;
860
+ }[];
861
+ newJoiner: boolean;
862
+ presentationStream: {
863
+ active: boolean;
864
+ id: string;
865
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
866
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
867
+ addTrack: (track: MediaStreamTrack) => void;
868
+ clone: () => MediaStream;
869
+ getAudioTracks: () => MediaStreamTrack[];
870
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
871
+ getTracks: () => MediaStreamTrack[];
872
+ getVideoTracks: () => MediaStreamTrack[];
873
+ removeTrack: (track: MediaStreamTrack) => void;
874
+ addEventListener: {
875
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
876
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
877
+ };
878
+ removeEventListener: {
879
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
880
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
881
+ };
882
+ dispatchEvent: (event: Event) => boolean;
883
+ inboundId?: string | undefined;
884
+ } | null;
885
+ }[];
886
+ }, action: PayloadAction<RtcStreamAddedPayload>) => RemoteParticipantState;
887
+ participantStreamIdAdded: (state: {
888
+ remoteParticipants: {
889
+ id: string;
890
+ displayName: string;
891
+ isAudioEnabled: boolean;
892
+ isVideoEnabled: boolean;
893
+ isLocalParticipant: boolean;
894
+ stream: {
895
+ active: boolean;
896
+ id: string;
897
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
898
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
899
+ addTrack: (track: MediaStreamTrack) => void;
900
+ clone: () => MediaStream;
901
+ getAudioTracks: () => MediaStreamTrack[];
902
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
903
+ getTracks: () => MediaStreamTrack[];
904
+ getVideoTracks: () => MediaStreamTrack[];
905
+ removeTrack: (track: MediaStreamTrack) => void;
906
+ addEventListener: {
907
+ <K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
908
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
909
+ };
910
+ removeEventListener: {
911
+ <K_1 extends keyof MediaStreamEventMap>(type: K_1, listener: (this: MediaStream, ev: MediaStreamEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
912
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
913
+ };
914
+ dispatchEvent: (event: Event) => boolean;
915
+ inboundId?: string | undefined;
916
+ } | null;
917
+ streams: {
918
+ id: string;
919
+ state: StreamState;
920
+ }[];
921
+ newJoiner: boolean;
922
+ presentationStream: {
923
+ active: boolean;
924
+ id: string;
925
+ onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
926
+ onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
927
+ addTrack: (track: MediaStreamTrack) => void;
928
+ clone: () => MediaStream;
929
+ getAudioTracks: () => MediaStreamTrack[];
930
+ getTrackById: (trackId: string) => MediaStreamTrack | null;
931
+ getTracks: () => MediaStreamTrack[];
932
+ getVideoTracks: () => MediaStreamTrack[];
933
+ removeTrack: (track: MediaStreamTrack) => void;
934
+ addEventListener: {
935
+ <K_2 extends keyof MediaStreamEventMap>(type: K_2, listener: (this: MediaStream, ev: MediaStreamEventMap[K_2]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
936
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
937
+ };
938
+ removeEventListener: {
939
+ <K_3 extends keyof MediaStreamEventMap>(type: K_3, listener: (this: MediaStream, ev: MediaStreamEventMap[K_3]) => any, options?: boolean | EventListenerOptions | undefined): void;
940
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
941
+ };
942
+ dispatchEvent: (event: Event) => boolean;
943
+ inboundId?: string | undefined;
944
+ } | null;
945
+ }[];
946
+ }, action: PayloadAction<{
947
+ clientId: string;
948
+ streamId: string;
949
+ }>) => RemoteParticipantState;
950
+ }, "remoteParticipants", "remoteParticipants", _reduxjs_toolkit.SliceSelectors<RemoteParticipantState>>;
951
+ /**
952
+ * Action creators
953
+ */
954
+ declare const participantStreamAdded: _reduxjs_toolkit.ActionCreatorWithPayload<RtcStreamAddedPayload, "remoteParticipants/participantStreamAdded">;
955
+ declare const participantStreamIdAdded: _reduxjs_toolkit.ActionCreatorWithPayload<{
956
+ clientId: string;
957
+ streamId: string;
958
+ }, "remoteParticipants/participantStreamIdAdded">;
959
+ declare const streamStatusUpdated: _reduxjs_toolkit.ActionCreatorWithPayload<StreamStatusUpdate[], "remoteParticipants/streamStatusUpdated">;
960
+ /**
961
+ * Selectors
962
+ */
963
+ declare const selectRemoteParticipantsRaw: (state: RootState) => RemoteParticipantState;
964
+ declare const selectRemoteParticipants: (state: RootState) => RemoteParticipant[];
965
+ declare const selectScreenshares: ((state: {
966
+ app: AppState;
967
+ chat: ChatState;
968
+ cloudRecording: CloudRecordingState;
969
+ deviceCredentials: DeviceCredentialsState;
970
+ localMedia: LocalMediaState;
971
+ localParticipant: LocalParticipantState;
972
+ localScreenshare: LocalScreenshareState;
973
+ organization: OrganizationState;
974
+ remoteParticipants: RemoteParticipantState;
975
+ roomConnection: RoomConnectionState;
976
+ rtcAnalytics: rtcAnalyticsState;
977
+ rtcConnection: RtcConnectionState;
978
+ signalConnection: SignalConnectionState;
979
+ streaming: StreamingState;
980
+ waitingParticipants: WaitingParticipantsState;
981
+ }) => Screenshare[]) & {
982
+ clearCache: () => void;
983
+ resultsCount: () => number;
984
+ resetResultsCount: () => void;
985
+ } & {
986
+ resultFunc: (resultFuncArgs_0: MediaStream | null, resultFuncArgs_1: RemoteParticipant[]) => Screenshare[];
987
+ memoizedResultFunc: ((resultFuncArgs_0: MediaStream | null, resultFuncArgs_1: RemoteParticipant[]) => Screenshare[]) & {
988
+ clearCache: () => void;
989
+ resultsCount: () => number;
990
+ resetResultsCount: () => void;
991
+ };
992
+ lastResult: () => Screenshare[];
993
+ dependencies: [(state: {
994
+ app: AppState;
995
+ chat: ChatState;
996
+ cloudRecording: CloudRecordingState;
997
+ deviceCredentials: DeviceCredentialsState;
998
+ localMedia: LocalMediaState;
999
+ localParticipant: LocalParticipantState;
1000
+ localScreenshare: LocalScreenshareState;
1001
+ organization: OrganizationState;
1002
+ remoteParticipants: RemoteParticipantState;
1003
+ roomConnection: RoomConnectionState;
1004
+ rtcAnalytics: rtcAnalyticsState;
1005
+ rtcConnection: RtcConnectionState;
1006
+ signalConnection: SignalConnectionState;
1007
+ streaming: StreamingState;
1008
+ waitingParticipants: WaitingParticipantsState;
1009
+ }) => MediaStream | null, (state: RootState) => RemoteParticipant[]];
1010
+ recomputations: () => number;
1011
+ resetRecomputations: () => void;
1012
+ dependencyRecomputations: () => number;
1013
+ resetDependencyRecomputations: () => void;
1014
+ } & {
1015
+ argsMemoize: typeof reselect.weakMapMemoize;
1016
+ memoize: typeof reselect.weakMapMemoize;
1017
+ };
1018
+
1019
+ type ConnectionStatus = "initializing" | "connecting" | "connected" | "reconnect" | "room_locked" | "knocking" | "disconnecting" | "disconnected" | "knock_rejected";
1020
+ /**
1021
+ * Reducer
1022
+ */
1023
+ interface RoomConnectionState {
1024
+ session: {
1025
+ createdAt: string;
1026
+ id: string;
1027
+ } | null;
1028
+ status: ConnectionStatus;
1029
+ error: unknown;
1030
+ }
1031
+ declare const roomConnectionSlice: _reduxjs_toolkit.Slice<RoomConnectionState, {
1032
+ connectionStatusChanged: (state: {
1033
+ session: {
1034
+ createdAt: string;
1035
+ id: string;
1036
+ } | null;
1037
+ status: ConnectionStatus;
1038
+ error: unknown;
1039
+ }, action: PayloadAction<ConnectionStatus>) => {
1040
+ status: ConnectionStatus;
1041
+ session: {
1042
+ createdAt: string;
1043
+ id: string;
1044
+ } | null;
1045
+ error: unknown;
1046
+ };
1047
+ }, "roomConnection", "roomConnection", _reduxjs_toolkit.SliceSelectors<RoomConnectionState>>;
1048
+ declare const doKnockRoom: (args: void) => AppThunk<void>;
1049
+ declare const doConnectRoom: (args: void) => AppThunk<void>;
1050
+ /**
1051
+ * Selectors
1052
+ */
1053
+ declare const selectRoomConnectionRaw: (state: RootState) => RoomConnectionState;
1054
+ declare const selectRoomConnectionSession: (state: RootState) => {
1055
+ createdAt: string;
1056
+ id: string;
1057
+ } | null;
1058
+ declare const selectRoomConnectionSessionId: (state: RootState) => string | undefined;
1059
+ declare const selectRoomConnectionStatus: (state: RootState) => ConnectionStatus;
1060
+ /**
1061
+ * Reactors
1062
+ */
1063
+ declare const selectShouldConnectRoom: ((state: {
1064
+ app: AppState;
1065
+ chat: ChatState;
1066
+ cloudRecording: CloudRecordingState;
1067
+ deviceCredentials: DeviceCredentialsState;
1068
+ localMedia: LocalMediaState;
1069
+ localParticipant: LocalParticipantState;
1070
+ localScreenshare: LocalScreenshareState;
1071
+ organization: OrganizationState;
1072
+ remoteParticipants: RemoteParticipantState;
1073
+ roomConnection: RoomConnectionState;
1074
+ rtcAnalytics: rtcAnalyticsState;
1075
+ rtcConnection: RtcConnectionState;
1076
+ signalConnection: SignalConnectionState;
1077
+ streaming: StreamingState;
1078
+ waitingParticipants: WaitingParticipantsState;
1079
+ }) => boolean) & {
1080
+ clearCache: () => void;
1081
+ resultsCount: () => number;
1082
+ resetResultsCount: () => void;
1083
+ } & {
1084
+ resultFunc: (resultFuncArgs_0: string | undefined, resultFuncArgs_1: ConnectionStatus, resultFuncArgs_2: boolean, resultFuncArgs_3: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_4: boolean) => boolean;
1085
+ memoizedResultFunc: ((resultFuncArgs_0: string | undefined, resultFuncArgs_1: ConnectionStatus, resultFuncArgs_2: boolean, resultFuncArgs_3: "" | "error" | "stopped" | "starting" | "started", resultFuncArgs_4: boolean) => boolean) & {
1086
+ clearCache: () => void;
1087
+ resultsCount: () => number;
1088
+ resetResultsCount: () => void;
1089
+ };
1090
+ lastResult: () => boolean;
1091
+ dependencies: [(state: {
1092
+ app: AppState;
1093
+ chat: ChatState;
1094
+ cloudRecording: CloudRecordingState;
1095
+ deviceCredentials: DeviceCredentialsState;
1096
+ localMedia: LocalMediaState;
1097
+ localParticipant: LocalParticipantState;
1098
+ localScreenshare: LocalScreenshareState;
1099
+ organization: OrganizationState;
1100
+ remoteParticipants: RemoteParticipantState;
1101
+ roomConnection: RoomConnectionState;
1102
+ rtcAnalytics: rtcAnalyticsState;
1103
+ rtcConnection: RtcConnectionState;
1104
+ signalConnection: SignalConnectionState;
1105
+ streaming: StreamingState;
1106
+ waitingParticipants: WaitingParticipantsState;
1107
+ }) => string | undefined, (state: RootState) => ConnectionStatus, (state: {
1108
+ app: AppState;
1109
+ chat: ChatState;
1110
+ cloudRecording: CloudRecordingState;
1111
+ deviceCredentials: DeviceCredentialsState;
1112
+ localMedia: LocalMediaState;
1113
+ localParticipant: LocalParticipantState;
1114
+ localScreenshare: LocalScreenshareState;
1115
+ organization: OrganizationState;
1116
+ remoteParticipants: RemoteParticipantState;
1117
+ roomConnection: RoomConnectionState;
1118
+ rtcAnalytics: rtcAnalyticsState;
1119
+ rtcConnection: RtcConnectionState;
1120
+ signalConnection: SignalConnectionState;
1121
+ streaming: StreamingState;
1122
+ waitingParticipants: WaitingParticipantsState;
1123
+ }) => boolean, (state: {
1124
+ app: AppState;
1125
+ chat: ChatState;
1126
+ cloudRecording: CloudRecordingState;
1127
+ deviceCredentials: DeviceCredentialsState;
1128
+ localMedia: LocalMediaState;
1129
+ localParticipant: LocalParticipantState;
1130
+ localScreenshare: LocalScreenshareState;
1131
+ organization: OrganizationState;
1132
+ remoteParticipants: RemoteParticipantState;
1133
+ roomConnection: RoomConnectionState;
1134
+ rtcAnalytics: rtcAnalyticsState;
1135
+ rtcConnection: RtcConnectionState;
1136
+ signalConnection: SignalConnectionState;
1137
+ streaming: StreamingState;
1138
+ waitingParticipants: WaitingParticipantsState;
1139
+ }) => "" | "error" | "stopped" | "starting" | "started", (state: {
1140
+ app: AppState;
1141
+ chat: ChatState;
1142
+ cloudRecording: CloudRecordingState;
1143
+ deviceCredentials: DeviceCredentialsState;
1144
+ localMedia: LocalMediaState;
1145
+ localParticipant: LocalParticipantState;
1146
+ localScreenshare: LocalScreenshareState;
1147
+ organization: OrganizationState;
1148
+ remoteParticipants: RemoteParticipantState;
1149
+ roomConnection: RoomConnectionState;
1150
+ rtcAnalytics: rtcAnalyticsState;
1151
+ rtcConnection: RtcConnectionState;
1152
+ signalConnection: SignalConnectionState;
1153
+ streaming: StreamingState;
1154
+ waitingParticipants: WaitingParticipantsState;
1155
+ }) => boolean];
1156
+ recomputations: () => number;
1157
+ resetRecomputations: () => void;
1158
+ dependencyRecomputations: () => number;
1159
+ resetDependencyRecomputations: () => void;
1160
+ } & {
1161
+ argsMemoize: typeof reselect.weakMapMemoize;
1162
+ memoize: typeof reselect.weakMapMemoize;
1163
+ };
1164
+
1165
+ declare const createWebRtcEmitter: (dispatch: AppDispatch) => {
1166
+ emit: (eventName: keyof RtcEvents, data: RtcEvents[keyof RtcEvents]) => void;
1167
+ };
1168
+ /**
1169
+ * Reducer
1170
+ */
1171
+ interface StreamResolutionUpdate {
1172
+ streamId: string;
1173
+ width: number;
1174
+ height: number;
1175
+ }
1176
+ interface RtcConnectionState {
1177
+ dispatcherCreated: boolean;
1178
+ error: unknown;
1179
+ isCreatingDispatcher: boolean;
1180
+ reportedStreamResolutions: {
1181
+ [streamId: string]: Omit<StreamResolutionUpdate, "streamId">;
1182
+ };
1183
+ rtcManager: RtcManager | null;
1184
+ rtcManagerDispatcher: RtcManagerDispatcher | null;
1185
+ rtcManagerInitialized: boolean;
1186
+ status: "" | "ready" | "reconnect";
1187
+ isAcceptingStreams: boolean;
1188
+ }
1189
+ declare const rtcConnectionSlice: _reduxjs_toolkit.Slice<RtcConnectionState, {
1190
+ isAcceptingStreams: (state: {
1191
+ dispatcherCreated: boolean;
1192
+ error: unknown;
1193
+ isCreatingDispatcher: boolean;
1194
+ reportedStreamResolutions: {
1195
+ [x: string]: {
1196
+ width: number;
1197
+ height: number;
1198
+ };
1199
+ };
1200
+ rtcManager: {
1201
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1202
+ activeBreakout: any;
1203
+ clientId: any;
1204
+ shouldAddLocalVideo: any;
1205
+ streamId: any;
1206
+ }) => void;
1207
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1208
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1209
+ disconnectAll: () => void;
1210
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1211
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1212
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1213
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1214
+ width: number;
1215
+ height: number;
1216
+ }) => void;
1217
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1218
+ } | null;
1219
+ rtcManagerDispatcher: {} | null;
1220
+ rtcManagerInitialized: boolean;
1221
+ status: "" | "ready" | "reconnect";
1222
+ isAcceptingStreams: boolean;
1223
+ }, action: PayloadAction<boolean>) => {
1224
+ isAcceptingStreams: boolean;
1225
+ dispatcherCreated: boolean;
1226
+ error: unknown;
1227
+ isCreatingDispatcher: boolean;
1228
+ reportedStreamResolutions: {
1229
+ [x: string]: {
1230
+ width: number;
1231
+ height: number;
1232
+ };
1233
+ };
1234
+ rtcManager: {
1235
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1236
+ activeBreakout: any;
1237
+ clientId: any;
1238
+ shouldAddLocalVideo: any;
1239
+ streamId: any;
1240
+ }) => void;
1241
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1242
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1243
+ disconnectAll: () => void;
1244
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1245
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1246
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1247
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1248
+ width: number;
1249
+ height: number;
1250
+ }) => void;
1251
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1252
+ } | null;
1253
+ rtcManagerDispatcher: {} | null;
1254
+ rtcManagerInitialized: boolean;
1255
+ status: "" | "ready" | "reconnect";
1256
+ };
1257
+ resolutionReported: (state: {
1258
+ dispatcherCreated: boolean;
1259
+ error: unknown;
1260
+ isCreatingDispatcher: boolean;
1261
+ reportedStreamResolutions: {
1262
+ [x: string]: {
1263
+ width: number;
1264
+ height: number;
1265
+ };
1266
+ };
1267
+ rtcManager: {
1268
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1269
+ activeBreakout: any;
1270
+ clientId: any;
1271
+ shouldAddLocalVideo: any;
1272
+ streamId: any;
1273
+ }) => void;
1274
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1275
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1276
+ disconnectAll: () => void;
1277
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1278
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1279
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1280
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1281
+ width: number;
1282
+ height: number;
1283
+ }) => void;
1284
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1285
+ } | null;
1286
+ rtcManagerDispatcher: {} | null;
1287
+ rtcManagerInitialized: boolean;
1288
+ status: "" | "ready" | "reconnect";
1289
+ isAcceptingStreams: boolean;
1290
+ }, action: PayloadAction<StreamResolutionUpdate>) => {
1291
+ reportedStreamResolutions: {
1292
+ [x: string]: {
1293
+ width: number;
1294
+ height: number;
1295
+ } | {
1296
+ width: number;
1297
+ height: number;
1298
+ };
1299
+ };
1300
+ dispatcherCreated: boolean;
1301
+ error: unknown;
1302
+ isCreatingDispatcher: boolean;
1303
+ rtcManager: {
1304
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1305
+ activeBreakout: any;
1306
+ clientId: any;
1307
+ shouldAddLocalVideo: any;
1308
+ streamId: any;
1309
+ }) => void;
1310
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1311
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1312
+ disconnectAll: () => void;
1313
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1314
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1315
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1316
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1317
+ width: number;
1318
+ height: number;
1319
+ }) => void;
1320
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1321
+ } | null;
1322
+ rtcManagerDispatcher: {} | null;
1323
+ rtcManagerInitialized: boolean;
1324
+ status: "" | "ready" | "reconnect";
1325
+ isAcceptingStreams: boolean;
1326
+ };
1327
+ rtcDisconnected: () => {
1328
+ dispatcherCreated: boolean;
1329
+ error: unknown;
1330
+ isCreatingDispatcher: boolean;
1331
+ reportedStreamResolutions: {
1332
+ [streamId: string]: Omit<StreamResolutionUpdate, "streamId">;
1333
+ };
1334
+ rtcManager: RtcManager | null;
1335
+ rtcManagerDispatcher: RtcManagerDispatcher | null;
1336
+ rtcManagerInitialized: boolean;
1337
+ status: "" | "ready" | "reconnect";
1338
+ isAcceptingStreams: boolean;
1339
+ };
1340
+ rtcDispatcherCreated: (state: {
1341
+ dispatcherCreated: boolean;
1342
+ error: unknown;
1343
+ isCreatingDispatcher: boolean;
1344
+ reportedStreamResolutions: {
1345
+ [x: string]: {
1346
+ width: number;
1347
+ height: number;
1348
+ };
1349
+ };
1350
+ rtcManager: {
1351
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1352
+ activeBreakout: any;
1353
+ clientId: any;
1354
+ shouldAddLocalVideo: any;
1355
+ streamId: any;
1356
+ }) => void;
1357
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1358
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1359
+ disconnectAll: () => void;
1360
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1361
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1362
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1363
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1364
+ width: number;
1365
+ height: number;
1366
+ }) => void;
1367
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1368
+ } | null;
1369
+ rtcManagerDispatcher: {} | null;
1370
+ rtcManagerInitialized: boolean;
1371
+ status: "" | "ready" | "reconnect";
1372
+ isAcceptingStreams: boolean;
1373
+ }, action: PayloadAction<RtcManagerDispatcher>) => {
1374
+ dispatcherCreated: true;
1375
+ rtcManagerDispatcher: RtcManagerDispatcher;
1376
+ error: unknown;
1377
+ isCreatingDispatcher: boolean;
1378
+ reportedStreamResolutions: {
1379
+ [x: string]: {
1380
+ width: number;
1381
+ height: number;
1382
+ };
1383
+ };
1384
+ rtcManager: {
1385
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1386
+ activeBreakout: any;
1387
+ clientId: any;
1388
+ shouldAddLocalVideo: any;
1389
+ streamId: any;
1390
+ }) => void;
1391
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1392
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1393
+ disconnectAll: () => void;
1394
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1395
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1396
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1397
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1398
+ width: number;
1399
+ height: number;
1400
+ }) => void;
1401
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1402
+ } | null;
1403
+ rtcManagerInitialized: boolean;
1404
+ status: "" | "ready" | "reconnect";
1405
+ isAcceptingStreams: boolean;
1406
+ };
1407
+ rtcManagerCreated: (state: {
1408
+ dispatcherCreated: boolean;
1409
+ error: unknown;
1410
+ isCreatingDispatcher: boolean;
1411
+ reportedStreamResolutions: {
1412
+ [x: string]: {
1413
+ width: number;
1414
+ height: number;
1415
+ };
1416
+ };
1417
+ rtcManager: {
1418
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1419
+ activeBreakout: any;
1420
+ clientId: any;
1421
+ shouldAddLocalVideo: any;
1422
+ streamId: any;
1423
+ }) => void;
1424
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1425
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1426
+ disconnectAll: () => void;
1427
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1428
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1429
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1430
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1431
+ width: number;
1432
+ height: number;
1433
+ }) => void;
1434
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1435
+ } | null;
1436
+ rtcManagerDispatcher: {} | null;
1437
+ rtcManagerInitialized: boolean;
1438
+ status: "" | "ready" | "reconnect";
1439
+ isAcceptingStreams: boolean;
1440
+ }, action: PayloadAction<RtcManager>) => {
1441
+ rtcManager: RtcManager;
1442
+ status: "ready";
1443
+ dispatcherCreated: boolean;
1444
+ error: unknown;
1445
+ isCreatingDispatcher: boolean;
1446
+ reportedStreamResolutions: {
1447
+ [x: string]: {
1448
+ width: number;
1449
+ height: number;
1450
+ };
1451
+ };
1452
+ rtcManagerDispatcher: {} | null;
1453
+ rtcManagerInitialized: boolean;
1454
+ isAcceptingStreams: boolean;
1455
+ };
1456
+ rtcManagerDestroyed: (state: {
1457
+ dispatcherCreated: boolean;
1458
+ error: unknown;
1459
+ isCreatingDispatcher: boolean;
1460
+ reportedStreamResolutions: {
1461
+ [x: string]: {
1462
+ width: number;
1463
+ height: number;
1464
+ };
1465
+ };
1466
+ rtcManager: {
1467
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1468
+ activeBreakout: any;
1469
+ clientId: any;
1470
+ shouldAddLocalVideo: any;
1471
+ streamId: any;
1472
+ }) => void;
1473
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1474
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1475
+ disconnectAll: () => void;
1476
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1477
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1478
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1479
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1480
+ width: number;
1481
+ height: number;
1482
+ }) => void;
1483
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1484
+ } | null;
1485
+ rtcManagerDispatcher: {} | null;
1486
+ rtcManagerInitialized: boolean;
1487
+ status: "" | "ready" | "reconnect";
1488
+ isAcceptingStreams: boolean;
1489
+ }) => {
1490
+ rtcManager: null;
1491
+ dispatcherCreated: boolean;
1492
+ error: unknown;
1493
+ isCreatingDispatcher: boolean;
1494
+ reportedStreamResolutions: {
1495
+ [x: string]: {
1496
+ width: number;
1497
+ height: number;
1498
+ };
1499
+ };
1500
+ rtcManagerDispatcher: {} | null;
1501
+ rtcManagerInitialized: boolean;
1502
+ status: "" | "ready" | "reconnect";
1503
+ isAcceptingStreams: boolean;
1504
+ };
1505
+ rtcManagerInitialized: (state: {
1506
+ dispatcherCreated: boolean;
1507
+ error: unknown;
1508
+ isCreatingDispatcher: boolean;
1509
+ reportedStreamResolutions: {
1510
+ [x: string]: {
1511
+ width: number;
1512
+ height: number;
1513
+ };
1514
+ };
1515
+ rtcManager: {
1516
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1517
+ activeBreakout: any;
1518
+ clientId: any;
1519
+ shouldAddLocalVideo: any;
1520
+ streamId: any;
1521
+ }) => void;
1522
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1523
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1524
+ disconnectAll: () => void;
1525
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1526
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1527
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1528
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1529
+ width: number;
1530
+ height: number;
1531
+ }) => void;
1532
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1533
+ } | null;
1534
+ rtcManagerDispatcher: {} | null;
1535
+ rtcManagerInitialized: boolean;
1536
+ status: "" | "ready" | "reconnect";
1537
+ isAcceptingStreams: boolean;
1538
+ }) => {
1539
+ rtcManagerInitialized: true;
1540
+ dispatcherCreated: boolean;
1541
+ error: unknown;
1542
+ isCreatingDispatcher: boolean;
1543
+ reportedStreamResolutions: {
1544
+ [x: string]: {
1545
+ width: number;
1546
+ height: number;
1547
+ };
1548
+ };
1549
+ rtcManager: {
1550
+ acceptNewStream: ({ activeBreakout: boolean, clientId: string, shouldAddLocalVideo: boolean, streamId: string, }: {
1551
+ activeBreakout: any;
1552
+ clientId: any;
1553
+ shouldAddLocalVideo: any;
1554
+ streamId: any;
1555
+ }) => void;
1556
+ addNewStream: (streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean) => void;
1557
+ disconnect: (streamId: string, activeBreakout: boolean) => void;
1558
+ disconnectAll: () => void;
1559
+ replaceTrack: (oldTrack: MediaStreamTrack, newTrack: MediaStreamTrack) => Promise<void>;
1560
+ removeStream: (streamId: string, _stream: MediaStream, requestedByClientId: string | null) => void;
1561
+ shouldAcceptStreamsFromBothSides?: (() => boolean) | undefined;
1562
+ updateStreamResolution: (streamId: string, ignored: null, resolution: {
1563
+ width: number;
1564
+ height: number;
1565
+ }) => void;
1566
+ sendStatsCustomEvent: (eventName: string, data: unknown) => void;
1567
+ } | null;
1568
+ rtcManagerDispatcher: {} | null;
1569
+ status: "" | "ready" | "reconnect";
1570
+ isAcceptingStreams: boolean;
1571
+ };
1572
+ }, "rtcConnection", "rtcConnection", _reduxjs_toolkit.SliceSelectors<RtcConnectionState>>;
1573
+ /**
1574
+ * Action creators
1575
+ */
1576
+ declare const resolutionReported: _reduxjs_toolkit.ActionCreatorWithPayload<StreamResolutionUpdate, "rtcConnection/resolutionReported">;
1577
+ declare const rtcDispatcherCreated: _reduxjs_toolkit.ActionCreatorWithPayload<RtcManagerDispatcher, "rtcConnection/rtcDispatcherCreated">;
1578
+ declare const rtcDisconnected: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcDisconnected">;
1579
+ declare const rtcManagerCreated: _reduxjs_toolkit.ActionCreatorWithPayload<RtcManager, "rtcConnection/rtcManagerCreated">;
1580
+ declare const rtcManagerDestroyed: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcManagerDestroyed">;
1581
+ declare const rtcManagerInitialized: _reduxjs_toolkit.ActionCreatorWithoutPayload<"rtcConnection/rtcManagerInitialized">;
1582
+ declare const isAcceptingStreams: _reduxjs_toolkit.ActionCreatorWithPayload<boolean, "rtcConnection/isAcceptingStreams">;
1583
+ declare const doConnectRtc: (args: void) => AppThunk<void>;
1584
+ declare const doDisconnectRtc: (args: void) => AppThunk<void>;
1585
+ declare const doHandleAcceptStreams: (args: StreamStatusUpdate[]) => AppThunk<void>;
1586
+ declare const doRtcReportStreamResolution: (args: StreamResolutionUpdate) => AppThunk<void>;
1587
+ declare const doRtcManagerCreated: (args: RtcManagerCreatedPayload) => AppThunk<void>;
1588
+ declare const doRtcManagerInitialize: (args: void) => AppThunk<void>;
1589
+ /**
1590
+ * Selectors
1591
+ */
1592
+ declare const selectRtcConnectionRaw: (state: RootState) => RtcConnectionState;
1593
+ declare const selectRtcManagerInitialized: (state: RootState) => boolean;
1594
+ declare const selectRtcManager: (state: RootState) => RtcManager | null;
1595
+ declare const selectRtcDispatcherCreated: (state: RootState) => boolean;
1596
+ declare const selectRtcIsCreatingDispatcher: (state: RootState) => boolean;
1597
+ declare const selectRtcStatus: (state: RootState) => "" | "reconnect" | "ready";
1598
+ declare const selectIsAcceptingStreams: (state: RootState) => boolean;
1599
+ declare const selectShouldConnectRtc: ((state: {
1600
+ app: AppState;
1601
+ chat: ChatState;
1602
+ cloudRecording: CloudRecordingState;
1603
+ deviceCredentials: DeviceCredentialsState;
1604
+ localMedia: LocalMediaState;
1605
+ localParticipant: LocalParticipantState;
1606
+ localScreenshare: LocalScreenshareState;
1607
+ organization: OrganizationState;
1608
+ remoteParticipants: RemoteParticipantState;
1609
+ roomConnection: RoomConnectionState;
1610
+ rtcAnalytics: rtcAnalyticsState;
1611
+ rtcConnection: RtcConnectionState;
1612
+ signalConnection: SignalConnectionState;
1613
+ streaming: StreamingState;
1614
+ waitingParticipants: WaitingParticipantsState;
1615
+ }) => boolean) & {
1616
+ clearCache: () => void;
1617
+ resultsCount: () => number;
1618
+ resetResultsCount: () => void;
1619
+ } & {
1620
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: boolean, resultFuncArgs_2: _whereby_jslib_media_src_utils_ServerSocket.default | null) => boolean;
1621
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: boolean, resultFuncArgs_2: _whereby_jslib_media_src_utils_ServerSocket.default | null) => boolean) & {
1622
+ clearCache: () => void;
1623
+ resultsCount: () => number;
1624
+ resetResultsCount: () => void;
1625
+ };
1626
+ lastResult: () => boolean;
1627
+ dependencies: [(state: RootState) => boolean, (state: RootState) => boolean, (state: {
1628
+ app: AppState;
1629
+ chat: ChatState;
1630
+ cloudRecording: CloudRecordingState;
1631
+ deviceCredentials: DeviceCredentialsState;
1632
+ localMedia: LocalMediaState;
1633
+ localParticipant: LocalParticipantState;
1634
+ localScreenshare: LocalScreenshareState;
1635
+ organization: OrganizationState;
1636
+ remoteParticipants: RemoteParticipantState;
1637
+ roomConnection: RoomConnectionState;
1638
+ rtcAnalytics: rtcAnalyticsState;
1639
+ rtcConnection: RtcConnectionState;
1640
+ signalConnection: SignalConnectionState;
1641
+ streaming: StreamingState;
1642
+ waitingParticipants: WaitingParticipantsState;
1643
+ }) => _whereby_jslib_media_src_utils_ServerSocket.default | null];
1644
+ recomputations: () => number;
1645
+ resetRecomputations: () => void;
1646
+ dependencyRecomputations: () => number;
1647
+ resetDependencyRecomputations: () => void;
1648
+ } & {
1649
+ argsMemoize: typeof reselect.weakMapMemoize;
1650
+ memoize: typeof reselect.weakMapMemoize;
1651
+ };
1652
+ declare const selectShouldInitializeRtc: ((state: {
1653
+ app: AppState;
1654
+ chat: ChatState;
1655
+ cloudRecording: CloudRecordingState;
1656
+ deviceCredentials: DeviceCredentialsState;
1657
+ localMedia: LocalMediaState;
1658
+ localParticipant: LocalParticipantState;
1659
+ localScreenshare: LocalScreenshareState;
1660
+ organization: OrganizationState;
1661
+ remoteParticipants: RemoteParticipantState;
1662
+ roomConnection: RoomConnectionState;
1663
+ rtcAnalytics: rtcAnalyticsState;
1664
+ rtcConnection: RtcConnectionState;
1665
+ signalConnection: SignalConnectionState;
1666
+ streaming: StreamingState;
1667
+ waitingParticipants: WaitingParticipantsState;
1668
+ }) => boolean) & {
1669
+ clearCache: () => void;
1670
+ resultsCount: () => number;
1671
+ resetResultsCount: () => void;
1672
+ } & {
1673
+ resultFunc: (resultFuncArgs_0: RtcManager | null, resultFuncArgs_1: boolean, resultFuncArgs_2: "" | "error" | "stopped" | "starting" | "started") => boolean;
1674
+ memoizedResultFunc: ((resultFuncArgs_0: RtcManager | null, resultFuncArgs_1: boolean, resultFuncArgs_2: "" | "error" | "stopped" | "starting" | "started") => boolean) & {
1675
+ clearCache: () => void;
1676
+ resultsCount: () => number;
1677
+ resetResultsCount: () => void;
1678
+ };
1679
+ lastResult: () => boolean;
1680
+ dependencies: [(state: RootState) => RtcManager | null, (state: RootState) => boolean, (state: {
1681
+ app: AppState;
1682
+ chat: ChatState;
1683
+ cloudRecording: CloudRecordingState;
1684
+ deviceCredentials: DeviceCredentialsState;
1685
+ localMedia: LocalMediaState;
1686
+ localParticipant: LocalParticipantState;
1687
+ localScreenshare: LocalScreenshareState;
1688
+ organization: OrganizationState;
1689
+ remoteParticipants: RemoteParticipantState;
1690
+ roomConnection: RoomConnectionState;
1691
+ rtcAnalytics: rtcAnalyticsState;
1692
+ rtcConnection: RtcConnectionState;
1693
+ signalConnection: SignalConnectionState;
1694
+ streaming: StreamingState;
1695
+ waitingParticipants: WaitingParticipantsState;
1696
+ }) => "" | "error" | "stopped" | "starting" | "started"];
1697
+ recomputations: () => number;
1698
+ resetRecomputations: () => void;
1699
+ dependencyRecomputations: () => number;
1700
+ resetDependencyRecomputations: () => void;
1701
+ } & {
1702
+ argsMemoize: typeof reselect.weakMapMemoize;
1703
+ memoize: typeof reselect.weakMapMemoize;
1704
+ };
1705
+ declare const selectShouldDisconnectRtc: ((state: {
1706
+ app: AppState;
1707
+ chat: ChatState;
1708
+ cloudRecording: CloudRecordingState;
1709
+ deviceCredentials: DeviceCredentialsState;
1710
+ localMedia: LocalMediaState;
1711
+ localParticipant: LocalParticipantState;
1712
+ localScreenshare: LocalScreenshareState;
1713
+ organization: OrganizationState;
1714
+ remoteParticipants: RemoteParticipantState;
1715
+ roomConnection: RoomConnectionState;
1716
+ rtcAnalytics: rtcAnalyticsState;
1717
+ rtcConnection: RtcConnectionState;
1718
+ signalConnection: SignalConnectionState;
1719
+ streaming: StreamingState;
1720
+ waitingParticipants: WaitingParticipantsState;
1721
+ }) => boolean) & {
1722
+ clearCache: () => void;
1723
+ resultsCount: () => number;
1724
+ resetResultsCount: () => void;
1725
+ } & {
1726
+ resultFunc: (resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: boolean) => boolean;
1727
+ memoizedResultFunc: ((resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: boolean) => boolean) & {
1728
+ clearCache: () => void;
1729
+ resultsCount: () => number;
1730
+ resetResultsCount: () => void;
1731
+ };
1732
+ lastResult: () => boolean;
1733
+ dependencies: [(state: RootState) => "" | "reconnect" | "ready", (state: {
1734
+ app: AppState;
1735
+ chat: ChatState;
1736
+ cloudRecording: CloudRecordingState;
1737
+ deviceCredentials: DeviceCredentialsState;
1738
+ localMedia: LocalMediaState;
1739
+ localParticipant: LocalParticipantState;
1740
+ localScreenshare: LocalScreenshareState;
1741
+ organization: OrganizationState;
1742
+ remoteParticipants: RemoteParticipantState;
1743
+ roomConnection: RoomConnectionState;
1744
+ rtcAnalytics: rtcAnalyticsState;
1745
+ rtcConnection: RtcConnectionState;
1746
+ signalConnection: SignalConnectionState;
1747
+ streaming: StreamingState;
1748
+ waitingParticipants: WaitingParticipantsState;
1749
+ }) => boolean];
1750
+ recomputations: () => number;
1751
+ resetRecomputations: () => void;
1752
+ dependencyRecomputations: () => number;
1753
+ resetDependencyRecomputations: () => void;
1754
+ } & {
1755
+ argsMemoize: typeof reselect.weakMapMemoize;
1756
+ memoize: typeof reselect.weakMapMemoize;
1757
+ };
1758
+ declare const selectStreamsToAccept: ((state: {
1759
+ app: AppState;
1760
+ chat: ChatState;
1761
+ cloudRecording: CloudRecordingState;
1762
+ deviceCredentials: DeviceCredentialsState;
1763
+ localMedia: LocalMediaState;
1764
+ localParticipant: LocalParticipantState;
1765
+ localScreenshare: LocalScreenshareState;
1766
+ organization: OrganizationState;
1767
+ remoteParticipants: RemoteParticipantState;
1768
+ roomConnection: RoomConnectionState;
1769
+ rtcAnalytics: rtcAnalyticsState;
1770
+ rtcConnection: RtcConnectionState;
1771
+ signalConnection: SignalConnectionState;
1772
+ streaming: StreamingState;
1773
+ waitingParticipants: WaitingParticipantsState;
1774
+ }) => {
1775
+ clientId: string;
1776
+ streamId: string;
1777
+ state: StreamState;
1778
+ }[]) & {
1779
+ clearCache: () => void;
1780
+ resultsCount: () => number;
1781
+ resetResultsCount: () => void;
1782
+ } & {
1783
+ resultFunc: (resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: RemoteParticipant[]) => {
1784
+ clientId: string;
1785
+ streamId: string;
1786
+ state: StreamState;
1787
+ }[];
1788
+ memoizedResultFunc: ((resultFuncArgs_0: "" | "reconnect" | "ready", resultFuncArgs_1: RemoteParticipant[]) => {
1789
+ clientId: string;
1790
+ streamId: string;
1791
+ state: StreamState;
1792
+ }[]) & {
1793
+ clearCache: () => void;
1794
+ resultsCount: () => number;
1795
+ resetResultsCount: () => void;
1796
+ };
1797
+ lastResult: () => {
1798
+ clientId: string;
1799
+ streamId: string;
1800
+ state: StreamState;
1801
+ }[];
1802
+ dependencies: [(state: RootState) => "" | "reconnect" | "ready", (state: {
1803
+ app: AppState;
1804
+ chat: ChatState;
1805
+ cloudRecording: CloudRecordingState;
1806
+ deviceCredentials: DeviceCredentialsState;
1807
+ localMedia: LocalMediaState;
1808
+ localParticipant: LocalParticipantState;
1809
+ localScreenshare: LocalScreenshareState;
1810
+ organization: OrganizationState;
1811
+ remoteParticipants: RemoteParticipantState;
1812
+ roomConnection: RoomConnectionState;
1813
+ rtcAnalytics: rtcAnalyticsState;
1814
+ rtcConnection: RtcConnectionState;
1815
+ signalConnection: SignalConnectionState;
1816
+ streaming: StreamingState;
1817
+ waitingParticipants: WaitingParticipantsState;
1818
+ }) => RemoteParticipant[]];
1819
+ recomputations: () => number;
1820
+ resetRecomputations: () => void;
1821
+ dependencyRecomputations: () => number;
1822
+ resetDependencyRecomputations: () => void;
1823
+ } & {
1824
+ argsMemoize: typeof reselect.weakMapMemoize;
1825
+ memoize: typeof reselect.weakMapMemoize;
1826
+ };
1827
+
1828
+ /**
1829
+ * Reducer
1830
+ */
1831
+ interface SignalConnectionState {
1832
+ deviceIdentified: boolean;
1833
+ isIdentifyingDevice: boolean;
1834
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1835
+ socket: _whereby_jslib_media_src_utils_ServerSocket__default | null;
1836
+ }
1837
+ declare const signalConnectionSlice: _reduxjs_toolkit.Slice<SignalConnectionState, {
1838
+ socketConnecting: (state: {
1839
+ deviceIdentified: boolean;
1840
+ isIdentifyingDevice: boolean;
1841
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1842
+ socket: {
1843
+ connect: () => void;
1844
+ disconnect: () => void;
1845
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1846
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1847
+ 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;
1848
+ 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;
1849
+ } | null;
1850
+ }) => {
1851
+ status: "connecting";
1852
+ deviceIdentified: boolean;
1853
+ isIdentifyingDevice: boolean;
1854
+ socket: {
1855
+ connect: () => void;
1856
+ disconnect: () => void;
1857
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1858
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1859
+ 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;
1860
+ 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;
1861
+ } | null;
1862
+ };
1863
+ socketConnected: (state: {
1864
+ deviceIdentified: boolean;
1865
+ isIdentifyingDevice: boolean;
1866
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1867
+ socket: {
1868
+ connect: () => void;
1869
+ disconnect: () => void;
1870
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1871
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1872
+ 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;
1873
+ 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;
1874
+ } | null;
1875
+ }, action: PayloadAction<_whereby_jslib_media_src_utils_ServerSocket__default>) => {
1876
+ socket: _whereby_jslib_media_src_utils_ServerSocket__default;
1877
+ status: "connected";
1878
+ deviceIdentified: boolean;
1879
+ isIdentifyingDevice: boolean;
1880
+ };
1881
+ socketDisconnected: (state: {
1882
+ deviceIdentified: boolean;
1883
+ isIdentifyingDevice: boolean;
1884
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1885
+ socket: {
1886
+ connect: () => void;
1887
+ disconnect: () => void;
1888
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1889
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1890
+ 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;
1891
+ 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;
1892
+ } | null;
1893
+ }) => {
1894
+ status: "disconnected";
1895
+ deviceIdentified: boolean;
1896
+ isIdentifyingDevice: boolean;
1897
+ socket: {
1898
+ connect: () => void;
1899
+ disconnect: () => void;
1900
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1901
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1902
+ 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;
1903
+ 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;
1904
+ } | null;
1905
+ };
1906
+ socketReconnecting: (state: {
1907
+ deviceIdentified: boolean;
1908
+ isIdentifyingDevice: boolean;
1909
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1910
+ socket: {
1911
+ connect: () => void;
1912
+ disconnect: () => void;
1913
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1914
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1915
+ 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;
1916
+ 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;
1917
+ } | null;
1918
+ }) => {
1919
+ status: "reconnect";
1920
+ deviceIdentified: boolean;
1921
+ isIdentifyingDevice: boolean;
1922
+ socket: {
1923
+ connect: () => void;
1924
+ disconnect: () => void;
1925
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1926
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1927
+ 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;
1928
+ 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;
1929
+ } | null;
1930
+ };
1931
+ deviceIdentifying: (state: {
1932
+ deviceIdentified: boolean;
1933
+ isIdentifyingDevice: boolean;
1934
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1935
+ socket: {
1936
+ connect: () => void;
1937
+ disconnect: () => void;
1938
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1939
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1940
+ 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;
1941
+ 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;
1942
+ } | null;
1943
+ }) => {
1944
+ isIdentifyingDevice: true;
1945
+ deviceIdentified: boolean;
1946
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1947
+ socket: {
1948
+ connect: () => void;
1949
+ disconnect: () => void;
1950
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1951
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1952
+ 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;
1953
+ 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;
1954
+ } | null;
1955
+ };
1956
+ deviceIdentified: (state: {
1957
+ deviceIdentified: boolean;
1958
+ isIdentifyingDevice: boolean;
1959
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1960
+ socket: {
1961
+ connect: () => void;
1962
+ disconnect: () => void;
1963
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1964
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1965
+ 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;
1966
+ 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;
1967
+ } | null;
1968
+ }) => {
1969
+ deviceIdentified: true;
1970
+ isIdentifyingDevice: false;
1971
+ status: "connected" | "connecting" | "disconnected" | "reconnect" | "";
1972
+ socket: {
1973
+ connect: () => void;
1974
+ disconnect: () => void;
1975
+ getManager: () => _whereby_jslib_media_src_utils_ServerSocket.SocketManager;
1976
+ emit: <K extends keyof _whereby_jslib_media_src_utils_ServerSocket.SignalRequests>(eventName: K, payload?: any) => any;
1977
+ 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;
1978
+ 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;
1979
+ } | null;
1980
+ };
1981
+ }, "signalConnection", "signalConnection", _reduxjs_toolkit.SliceSelectors<SignalConnectionState>>;
1982
+ declare const deviceIdentifying: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/deviceIdentifying">;
1983
+ declare const deviceIdentified: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/deviceIdentified">;
1984
+ declare const socketConnected: _reduxjs_toolkit.ActionCreatorWithPayload<_whereby_jslib_media_src_utils_ServerSocket__default, "signalConnection/socketConnected">;
1985
+ declare const socketConnecting: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketConnecting">;
1986
+ declare const socketDisconnected: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketDisconnected">;
1987
+ /**
1988
+ * Action creators
1989
+ */
1990
+ declare const doSignalSocketConnect: (args: void) => AppThunk<void>;
1991
+ declare const doSignalIdentifyDevice: (args: {
1992
+ deviceCredentials: Credentials;
1993
+ }) => AppThunk<void>;
1994
+ declare const doSignalDisconnect: (args: void) => AppThunk<void>;
1995
+ declare const doSignalReconnect: (args: void) => AppThunk<void>;
1996
+ declare const socketReconnecting: _reduxjs_toolkit.ActionCreatorWithoutPayload<"signalConnection/socketReconnecting">;
1997
+ /**
1998
+ * Selectors
1999
+ */
2000
+ declare const selectSignalConnectionRaw: (state: RootState) => SignalConnectionState;
2001
+ declare const selectSignalIsIdentifyingDevice: (state: RootState) => boolean;
2002
+ declare const selectSignalConnectionDeviceIdentified: (state: RootState) => boolean;
2003
+ declare const selectSignalStatus: (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected";
2004
+ declare const selectSignalConnectionSocket: (state: RootState) => _whereby_jslib_media_src_utils_ServerSocket__default | null;
2005
+ declare const selectShouldConnectSignal: ((state: {
2006
+ app: AppState;
2007
+ chat: ChatState;
2008
+ cloudRecording: CloudRecordingState;
2009
+ deviceCredentials: DeviceCredentialsState;
2010
+ localMedia: LocalMediaState;
2011
+ localParticipant: LocalParticipantState;
2012
+ localScreenshare: LocalScreenshareState;
2013
+ organization: OrganizationState;
2014
+ remoteParticipants: RemoteParticipantState;
2015
+ roomConnection: RoomConnectionState;
2016
+ rtcAnalytics: rtcAnalyticsState;
2017
+ rtcConnection: RtcConnectionState;
2018
+ signalConnection: SignalConnectionState;
2019
+ streaming: StreamingState;
2020
+ waitingParticipants: WaitingParticipantsState;
2021
+ }) => boolean) & {
2022
+ clearCache: () => void;
2023
+ resultsCount: () => number;
2024
+ resetResultsCount: () => void;
2025
+ } & {
2026
+ resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected") => boolean;
2027
+ memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected") => boolean) & {
2028
+ clearCache: () => void;
2029
+ resultsCount: () => number;
2030
+ resetResultsCount: () => void;
2031
+ };
2032
+ lastResult: () => boolean;
2033
+ dependencies: [(state: {
2034
+ app: AppState;
2035
+ chat: ChatState;
2036
+ cloudRecording: CloudRecordingState;
2037
+ deviceCredentials: DeviceCredentialsState;
2038
+ localMedia: LocalMediaState;
2039
+ localParticipant: LocalParticipantState;
2040
+ localScreenshare: LocalScreenshareState;
2041
+ organization: OrganizationState;
2042
+ remoteParticipants: RemoteParticipantState;
2043
+ roomConnection: RoomConnectionState;
2044
+ rtcAnalytics: rtcAnalyticsState;
2045
+ rtcConnection: RtcConnectionState;
2046
+ signalConnection: SignalConnectionState;
2047
+ streaming: StreamingState;
2048
+ waitingParticipants: WaitingParticipantsState;
2049
+ }) => boolean, (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected"];
2050
+ recomputations: () => number;
2051
+ resetRecomputations: () => void;
2052
+ dependencyRecomputations: () => number;
2053
+ resetDependencyRecomputations: () => void;
2054
+ } & {
2055
+ argsMemoize: typeof reselect.weakMapMemoize;
2056
+ memoize: typeof reselect.weakMapMemoize;
2057
+ };
2058
+ declare const selectShouldIdentifyDevice: ((state: {
2059
+ app: AppState;
2060
+ chat: ChatState;
2061
+ cloudRecording: CloudRecordingState;
2062
+ deviceCredentials: DeviceCredentialsState;
2063
+ localMedia: LocalMediaState;
2064
+ localParticipant: LocalParticipantState;
2065
+ localScreenshare: LocalScreenshareState;
2066
+ organization: OrganizationState;
2067
+ remoteParticipants: RemoteParticipantState;
2068
+ roomConnection: RoomConnectionState;
2069
+ rtcAnalytics: rtcAnalyticsState;
2070
+ rtcConnection: RtcConnectionState;
2071
+ signalConnection: SignalConnectionState;
2072
+ streaming: StreamingState;
2073
+ waitingParticipants: WaitingParticipantsState;
2074
+ }) => boolean) & {
2075
+ clearCache: () => void;
2076
+ resultsCount: () => number;
2077
+ resetResultsCount: () => void;
2078
+ } & {
2079
+ resultFunc: (resultFuncArgs_0: DeviceCredentialsState, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected", resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => boolean;
2080
+ memoizedResultFunc: ((resultFuncArgs_0: DeviceCredentialsState, resultFuncArgs_1: "" | "connecting" | "connected" | "reconnect" | "disconnected", resultFuncArgs_2: boolean, resultFuncArgs_3: boolean) => boolean) & {
2081
+ clearCache: () => void;
2082
+ resultsCount: () => number;
2083
+ resetResultsCount: () => void;
2084
+ };
2085
+ lastResult: () => boolean;
2086
+ dependencies: [(state: {
2087
+ app: AppState;
2088
+ chat: ChatState;
2089
+ cloudRecording: CloudRecordingState;
2090
+ deviceCredentials: DeviceCredentialsState;
2091
+ localMedia: LocalMediaState;
2092
+ localParticipant: LocalParticipantState;
2093
+ localScreenshare: LocalScreenshareState;
2094
+ organization: OrganizationState;
2095
+ remoteParticipants: RemoteParticipantState;
2096
+ roomConnection: RoomConnectionState;
2097
+ rtcAnalytics: rtcAnalyticsState;
2098
+ rtcConnection: RtcConnectionState;
2099
+ signalConnection: SignalConnectionState;
2100
+ streaming: StreamingState;
2101
+ waitingParticipants: WaitingParticipantsState;
2102
+ }) => DeviceCredentialsState, (state: RootState) => "" | "connecting" | "connected" | "reconnect" | "disconnected", (state: RootState) => boolean, (state: RootState) => boolean];
2103
+ recomputations: () => number;
2104
+ resetRecomputations: () => void;
2105
+ dependencyRecomputations: () => number;
2106
+ resetDependencyRecomputations: () => void;
2107
+ } & {
2108
+ argsMemoize: typeof reselect.weakMapMemoize;
2109
+ memoize: typeof reselect.weakMapMemoize;
2110
+ };
2111
+
2112
+ declare function createServices(): {
2113
+ credentialsService: CredentialsService;
2114
+ apiClient: ApiClient;
2115
+ organizationService: OrganizationService;
2116
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
2117
+ };
2118
+
2119
+ declare const rootReducer: redux.Reducer<{
2120
+ app: AppState;
2121
+ chat: ChatState;
2122
+ cloudRecording: CloudRecordingState;
2123
+ deviceCredentials: DeviceCredentialsState;
2124
+ localMedia: LocalMediaState;
2125
+ localParticipant: LocalParticipantState;
2126
+ localScreenshare: LocalScreenshareState;
2127
+ organization: OrganizationState;
2128
+ remoteParticipants: RemoteParticipantState;
2129
+ roomConnection: RoomConnectionState;
2130
+ rtcAnalytics: rtcAnalyticsState;
2131
+ rtcConnection: RtcConnectionState;
2132
+ signalConnection: SignalConnectionState;
2133
+ streaming: StreamingState;
2134
+ waitingParticipants: WaitingParticipantsState;
2135
+ }, redux.UnknownAction, Partial<{
2136
+ app: AppState | undefined;
2137
+ chat: ChatState | undefined;
2138
+ cloudRecording: CloudRecordingState | undefined;
2139
+ deviceCredentials: DeviceCredentialsState | undefined;
2140
+ localMedia: LocalMediaState | undefined;
2141
+ localParticipant: LocalParticipantState | undefined;
2142
+ localScreenshare: LocalScreenshareState | undefined;
2143
+ organization: OrganizationState | undefined;
2144
+ remoteParticipants: RemoteParticipantState | undefined;
2145
+ roomConnection: RoomConnectionState | undefined;
2146
+ rtcAnalytics: rtcAnalyticsState | undefined;
2147
+ rtcConnection: RtcConnectionState | undefined;
2148
+ signalConnection: SignalConnectionState | undefined;
2149
+ streaming: StreamingState | undefined;
2150
+ waitingParticipants: WaitingParticipantsState | undefined;
2151
+ }>>;
2152
+ declare const createStore: ({ preloadedState, injectServices, }: {
2153
+ preloadedState?: Partial<{
2154
+ app: AppState;
2155
+ chat: ChatState;
2156
+ cloudRecording: CloudRecordingState;
2157
+ deviceCredentials: DeviceCredentialsState;
2158
+ localMedia: LocalMediaState;
2159
+ localParticipant: LocalParticipantState;
2160
+ localScreenshare: LocalScreenshareState;
2161
+ organization: OrganizationState;
2162
+ remoteParticipants: RemoteParticipantState;
2163
+ roomConnection: RoomConnectionState;
2164
+ rtcAnalytics: rtcAnalyticsState;
2165
+ rtcConnection: RtcConnectionState;
2166
+ signalConnection: SignalConnectionState;
2167
+ streaming: StreamingState;
2168
+ waitingParticipants: WaitingParticipantsState;
2169
+ }> | undefined;
2170
+ injectServices: ReturnType<typeof createServices>;
2171
+ }) => _reduxjs_toolkit.EnhancedStore<{
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
+ }, redux.UnknownAction, _reduxjs_toolkit.Tuple<[redux.StoreEnhancer<{
2188
+ dispatch: ((action: redux.Action<"listenerMiddleware/add">) => _reduxjs_toolkit.UnsubscribeListener) & redux_thunk.ThunkDispatch<{
2189
+ app: AppState;
2190
+ chat: ChatState;
2191
+ cloudRecording: CloudRecordingState;
2192
+ deviceCredentials: DeviceCredentialsState;
2193
+ localMedia: LocalMediaState;
2194
+ localParticipant: LocalParticipantState;
2195
+ localScreenshare: LocalScreenshareState;
2196
+ organization: OrganizationState;
2197
+ remoteParticipants: RemoteParticipantState;
2198
+ roomConnection: RoomConnectionState;
2199
+ rtcAnalytics: rtcAnalyticsState;
2200
+ rtcConnection: RtcConnectionState;
2201
+ signalConnection: SignalConnectionState;
2202
+ streaming: StreamingState;
2203
+ waitingParticipants: WaitingParticipantsState;
2204
+ }, {
2205
+ services: {
2206
+ credentialsService: CredentialsService;
2207
+ apiClient: ApiClient;
2208
+ organizationService: OrganizationService;
2209
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
2210
+ };
2211
+ }, redux.UnknownAction>;
2212
+ }, {}>, redux.StoreEnhancer<{}, {}>]>>;
2213
+ type RootReducer = typeof rootReducer;
2214
+ type RootState = ReturnType<typeof rootReducer>;
2215
+ type AppDispatch = ReturnType<typeof createStore>["dispatch"];
2216
+ type Store = ReturnType<typeof createStore>;
2217
+ declare const observeStore: <T>(store: Store, select: (state: RootState) => T, onChange: (result: T) => void) => redux.Unsubscribe;
2218
+
2219
+ type ThunkConfig = {
2220
+ state: RootState;
2221
+ dispatch: AppDispatch;
2222
+ extra: {
2223
+ services: ReturnType<typeof createServices>;
2224
+ };
2225
+ };
2226
+ declare function createAppAsyncThunk<ReturnType, ArgType = undefined>(typePrefix: string, payloadCreator: AsyncThunkPayloadCreator<ReturnType, ArgType, ThunkConfig>): AsyncThunk<ReturnType, ArgType, ThunkConfig>;
2227
+ type AppThunk<R = void> = (dispatch: AppDispatch, getState: () => RootState, extra: {
2228
+ services: ReturnType<typeof createServices>;
2229
+ }) => R;
2230
+ declare function createAppThunk<A = void>(thunk: (args: A) => AppThunk): (args: A) => AppThunk;
2231
+
2232
+ declare const listenerMiddleware: _reduxjs_toolkit.ListenerMiddlewareInstance<unknown, redux_thunk.ThunkDispatch<unknown, unknown, redux.UnknownAction>, unknown>;
2233
+ type AppStartListening = TypedStartListening<RootState, AppDispatch, ReturnType<typeof createServices>>;
2234
+ declare const startAppListening: AppStartListening;
2235
+ declare const addAppListener: TypedAddListener<{
2236
+ app: AppState;
2237
+ chat: ChatState;
2238
+ cloudRecording: CloudRecordingState;
2239
+ deviceCredentials: DeviceCredentialsState;
2240
+ localMedia: LocalMediaState;
2241
+ localParticipant: LocalParticipantState;
2242
+ localScreenshare: LocalScreenshareState;
2243
+ organization: OrganizationState;
2244
+ remoteParticipants: RemoteParticipantState;
2245
+ roomConnection: RoomConnectionState;
2246
+ rtcAnalytics: rtcAnalyticsState;
2247
+ rtcConnection: RtcConnectionState;
2248
+ signalConnection: SignalConnectionState;
2249
+ streaming: StreamingState;
2250
+ waitingParticipants: WaitingParticipantsState;
2251
+ }, ((action: redux.Action<"listenerMiddleware/add">) => _reduxjs_toolkit.UnsubscribeListener) & redux_thunk.ThunkDispatch<{
2252
+ app: AppState;
2253
+ chat: ChatState;
2254
+ cloudRecording: CloudRecordingState;
2255
+ deviceCredentials: DeviceCredentialsState;
2256
+ localMedia: LocalMediaState;
2257
+ localParticipant: LocalParticipantState;
2258
+ localScreenshare: LocalScreenshareState;
2259
+ organization: OrganizationState;
2260
+ remoteParticipants: RemoteParticipantState;
2261
+ roomConnection: RoomConnectionState;
2262
+ rtcAnalytics: rtcAnalyticsState;
2263
+ rtcConnection: RtcConnectionState;
2264
+ signalConnection: SignalConnectionState;
2265
+ streaming: StreamingState;
2266
+ waitingParticipants: WaitingParticipantsState;
2267
+ }, {
2268
+ services: {
2269
+ credentialsService: CredentialsService;
2270
+ apiClient: ApiClient;
2271
+ organizationService: OrganizationService;
2272
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
2273
+ };
2274
+ }, redux.UnknownAction> & redux.Dispatch<redux.UnknownAction>, unknown, _reduxjs_toolkit_dist_listenerMiddleware_types.ListenerEntry<{
2275
+ app: AppState;
2276
+ chat: ChatState;
2277
+ cloudRecording: CloudRecordingState;
2278
+ deviceCredentials: DeviceCredentialsState;
2279
+ localMedia: LocalMediaState;
2280
+ localParticipant: LocalParticipantState;
2281
+ localScreenshare: LocalScreenshareState;
2282
+ organization: OrganizationState;
2283
+ remoteParticipants: RemoteParticipantState;
2284
+ roomConnection: RoomConnectionState;
2285
+ rtcAnalytics: rtcAnalyticsState;
2286
+ rtcConnection: RtcConnectionState;
2287
+ signalConnection: SignalConnectionState;
2288
+ streaming: StreamingState;
2289
+ waitingParticipants: WaitingParticipantsState;
2290
+ }, ((action: redux.Action<"listenerMiddleware/add">) => _reduxjs_toolkit.UnsubscribeListener) & redux_thunk.ThunkDispatch<{
2291
+ app: AppState;
2292
+ chat: ChatState;
2293
+ cloudRecording: CloudRecordingState;
2294
+ deviceCredentials: DeviceCredentialsState;
2295
+ localMedia: LocalMediaState;
2296
+ localParticipant: LocalParticipantState;
2297
+ localScreenshare: LocalScreenshareState;
2298
+ organization: OrganizationState;
2299
+ remoteParticipants: RemoteParticipantState;
2300
+ roomConnection: RoomConnectionState;
2301
+ rtcAnalytics: rtcAnalyticsState;
2302
+ rtcConnection: RtcConnectionState;
2303
+ signalConnection: SignalConnectionState;
2304
+ streaming: StreamingState;
2305
+ waitingParticipants: WaitingParticipantsState;
2306
+ }, {
2307
+ services: {
2308
+ credentialsService: CredentialsService;
2309
+ apiClient: ApiClient;
2310
+ organizationService: OrganizationService;
2311
+ fetchOrganizationFromRoomUrl: (roomUrl: string) => Promise<Organization | null>;
2312
+ };
2313
+ }, redux.UnknownAction> & redux.Dispatch<redux.UnknownAction>>, "listenerMiddleware/add">;
2314
+ type SelectorResults<Selectors extends Selector<RootState, unknown>[]> = {
2315
+ [K in keyof Selectors]: Selectors[K] extends Selector<RootState, infer R> ? R : never;
2316
+ };
2317
+ /**
2318
+ * Creates a reactor that will be called whenever the provided selectors change.
2319
+ * Every reactor needs to update a piece of state that it depends on, to avoid infinite loops.
2320
+ * example:
2321
+ * ```ts
2322
+ * createReactor(
2323
+ * [selectAppWantsToJoin, selectDeviceCredentialsRaw],
2324
+ * ({ dispatch }, wantsToJoin, deviceCredentialsRaw) => {
2325
+ * if (wantsToJoin && deviceCredentialsRaw.data) {
2326
+ * dispatch(doSignalIdentifyDevice({ deviceCredentials: deviceCredentialsRaw.data }));
2327
+ * }
2328
+ * });
2329
+ * ```
2330
+ * @param selectors. The selectors to be used to check if the state has changed.
2331
+ * @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.
2332
+ * @returns The unsubscribe function.
2333
+ */
2334
+ declare const createReactor: <Selectors extends ((state: {
2335
+ app: AppState;
2336
+ chat: ChatState;
2337
+ cloudRecording: CloudRecordingState;
2338
+ deviceCredentials: DeviceCredentialsState;
2339
+ localMedia: LocalMediaState;
2340
+ localParticipant: LocalParticipantState;
2341
+ localScreenshare: LocalScreenshareState;
2342
+ organization: OrganizationState;
2343
+ remoteParticipants: RemoteParticipantState;
2344
+ roomConnection: RoomConnectionState;
2345
+ rtcAnalytics: rtcAnalyticsState;
2346
+ rtcConnection: RtcConnectionState;
2347
+ signalConnection: SignalConnectionState;
2348
+ streaming: StreamingState;
2349
+ waitingParticipants: WaitingParticipantsState;
2350
+ }, ...params: any[]) => unknown)[]>(selectors: readonly [...Selectors], callback: (api: {
2351
+ dispatch: AppDispatch;
2352
+ getState: () => RootState;
2353
+ extra: ReturnType<typeof createServices>;
2354
+ }, ...selectorValues: SelectorResults<Selectors>) => void | Promise<void>) => _reduxjs_toolkit.UnsubscribeListener;
2355
+
2356
+ export { type AppDispatch, type AppStartListening, type AppState, type AppThunk, type ConnectionStatus, type RemoteParticipantState, type RoomConnectionState, type RootReducer, type RootState, type RtcConnectionState, type SignalConnectionState, type Store, type ThunkConfig, addAppListener, appLeft, appSlice, createAppAsyncThunk, createAppThunk, createReactor, createServices, createStore, createWebRtcEmitter, deviceIdentified, deviceIdentifying, doAppJoin, doConnectRoom, doConnectRtc, doDisconnectRtc, doHandleAcceptStreams, doKnockRoom, doRtcManagerCreated, doRtcManagerInitialize, doRtcReportStreamResolution, doSignalDisconnect, doSignalIdentifyDevice, doSignalReconnect, doSignalSocketConnect, isAcceptingStreams, listenerMiddleware, observeStore, participantStreamAdded, participantStreamIdAdded, remoteParticipantsSlice, resolutionReported, roomConnectionSlice, rootReducer, rtcConnectionSlice, rtcDisconnected, rtcDispatcherCreated, rtcManagerCreated, rtcManagerDestroyed, rtcManagerInitialized, sdkVersion, selectAppDisplayName, selectAppExternalId, selectAppIsNodeSdk, selectAppRaw, selectAppRoomKey, selectAppRoomName, selectAppRoomUrl, selectAppSdkVersion, selectAppWantsToJoin, selectIsAcceptingStreams, selectRemoteParticipants, selectRemoteParticipantsRaw, selectRoomConnectionRaw, selectRoomConnectionSession, selectRoomConnectionSessionId, selectRoomConnectionStatus, selectRtcConnectionRaw, selectRtcDispatcherCreated, selectRtcIsCreatingDispatcher, selectRtcManager, selectRtcManagerInitialized, selectRtcStatus, selectScreenshares, selectShouldConnectRoom, selectShouldConnectRtc, selectShouldConnectSignal, selectShouldDisconnectRtc, selectShouldIdentifyDevice, selectShouldInitializeRtc, selectSignalConnectionDeviceIdentified, selectSignalConnectionRaw, selectSignalConnectionSocket, selectSignalIsIdentifyingDevice, selectSignalStatus, selectStreamsToAccept, setRoomKey, signalConnectionSlice, socketConnected, socketConnecting, socketDisconnected, socketReconnecting, startAppListening, streamStatusUpdated };