@vinay.kumar.ha/videosdk-ui-toolkit 2.3.5-1.1

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.
package/index.d.ts ADDED
@@ -0,0 +1,1041 @@
1
+ /**
2
+ * Definition of error types for operations.
3
+ * - INVALID_OPERATION: The operation is invalid, perhaps caused by duplicated operations.
4
+ * - INTERNAL_ERROR: The remote service is temporarily unavailable.
5
+ * - INSUFFICIENT_PRIVILEGES: The operation is only applicable for a host or manager.
6
+ * - OPERATION_TIMEOUT: The operation timed out, try again later.
7
+ * - IMPROPER_SESSION_STATE: The user is not in a session, see the reason for details.
8
+ * - `closed`: The session is not joined.
9
+ * - `on hold`: The user is on hold.
10
+ * - `reconnecting`: The session is reconnecting.
11
+ * - INVALID_PARAMETERS: The parameters passed to the method are invalid, perhaps the wrong user ID or value, see the reason for details.
12
+ * - OPERATION_LOCKED: The operation can not be completed because the relevant property is locked, see the reason for details.
13
+ */
14
+ export type ErrorTypes =
15
+ | "INVALID_OPERATION"
16
+ | "INTERNAL_ERROR"
17
+ | "OPERATION_TIMEOUT"
18
+ | "INSUFFICIENT_PRIVILEGES"
19
+ | "IMPROPER_SESSION_STATE"
20
+ | "INVALID_PARAMETERS"
21
+ | "OPRATION_LOCKED";
22
+ /**
23
+ * Failure reason for async operation.
24
+ */
25
+ interface ExecutedFailure {
26
+ /**
27
+ * Error type.
28
+ */
29
+ type: ErrorTypes;
30
+ /**
31
+ * Error reason.
32
+ */
33
+ reason: string;
34
+ }
35
+ /**
36
+ * The result of an asynchronous operation. It is a promise object.
37
+ * - '': Success
38
+ * - ExecutedFailure: Failure. Use `.catch(error=>{})` or `try{ *your code* }catch(error){}` to handle the errors.
39
+ */
40
+ export type ExecutedResult = Promise<"" | ExecutedFailure>;
41
+
42
+ /**
43
+ * Audio QoS data interface.
44
+ */
45
+ export interface AudioQosData {
46
+ /**
47
+ * Audio sample rate.
48
+ */
49
+ sample_rate: number;
50
+ /**
51
+ * Audio round trip time.
52
+ */
53
+ rtt: number;
54
+ /**
55
+ * Audio jitter.
56
+ */
57
+ jitter: number;
58
+ /**
59
+ * Audio average loss.
60
+ */
61
+ avg_loss: number;
62
+ /**
63
+ * Audio maximum loss.
64
+ */
65
+ max_loss: number;
66
+ /**
67
+ * Bandwidth, measured in bits per second (bps)
68
+ */
69
+ bandwidth: number;
70
+ /**
71
+ * Bit rate, measured in bits per second (bps)
72
+ */
73
+ bitrate: number;
74
+ }
75
+
76
+ /**
77
+ * Video QoS data interface.
78
+ */
79
+ export interface VideoQosData {
80
+ /**
81
+ * Video sample rate.
82
+ */
83
+ sample_rate: number;
84
+ /**
85
+ * Video round trip time.
86
+ */
87
+ rtt: number;
88
+ /**
89
+ * Video jitter.
90
+ */
91
+ jitter: number;
92
+ /**
93
+ * Video average loss.
94
+ */
95
+ avg_loss: number;
96
+ /**
97
+ * Video maximum loss.
98
+ */
99
+ max_loss: number;
100
+ /**
101
+ * Video width.
102
+ */
103
+ width: number;
104
+ /**
105
+ * Video height.
106
+ */
107
+ height: number;
108
+ /**
109
+ * Video frame rate, in frames per second (fps).
110
+ */
111
+ fps: number;
112
+ /**
113
+ * Bandwidth, measured in bits per second (bps)
114
+ */
115
+ bandwidth: number;
116
+ /**
117
+ * Bit rate, measured in bits per second (bps)
118
+ */
119
+ bitrate: number;
120
+ }
121
+
122
+ /**
123
+ * Statistic option interface.
124
+ */
125
+ interface StatisticOption {
126
+ /**
127
+ * Subscribe or unsubscribe to encoding data (sending).
128
+ */
129
+ encode?: boolean;
130
+ /**
131
+ * Subscribe or unsubscribe to decoding data (receiving).
132
+ */
133
+ decode?: boolean;
134
+ }
135
+ /**
136
+ * Video statistic option interface.
137
+ */
138
+ interface VideoStatisticOption {
139
+ /**
140
+ * Subscribe or unsubscribe to encoding data (sending video).
141
+ */
142
+ encode?: boolean;
143
+ /**
144
+ * Subscribe or subscribe to decoding data (receiving video).
145
+ */
146
+ decode?: boolean;
147
+ /**
148
+ * Get the detailed data of each received video, such as frames per second, or resolution.
149
+ */
150
+ detailed?: boolean;
151
+ }
152
+
153
+ /**
154
+ * The participant interface.
155
+ */
156
+ interface Participant {
157
+ /**
158
+ * User ID.
159
+ */
160
+ userId: number;
161
+ /**
162
+ * User's display name.
163
+ */
164
+ displayName: string;
165
+ /**
166
+ * User's audio state.
167
+ * - `''`: No audio.
168
+ * - `computer`: Joined by computer audio.
169
+ * - `phone`: Joined by phone.
170
+ */
171
+ audio: "" | "computer" | "phone";
172
+ /**
173
+ * Whether audio is muted.
174
+ * If the user is not joined to audio (not connected to the microphone), the value is undefined.
175
+ */
176
+ muted?: boolean;
177
+ /**
178
+ * Whether the user is the host.
179
+ */
180
+ isHost: boolean;
181
+ /**
182
+ * Whether the user is a manager.
183
+ */
184
+ isManager: boolean;
185
+ /**
186
+ * User's avatar.
187
+ * Users can set their avatar in their [web profile](https://zoom.us/profile).
188
+ */
189
+ avatar?: string;
190
+ /**
191
+ * Whether the user started video.
192
+ */
193
+ bVideoOn: boolean;
194
+ /**
195
+ * Whether the user started sharing.
196
+ */
197
+ sharerOn: boolean;
198
+ /**
199
+ * Whether the share is paused.
200
+ */
201
+ sharerPause: boolean;
202
+ /**
203
+ * Whether the share is optimized for video.
204
+ */
205
+ bVideoShare?: boolean;
206
+ /**
207
+ * Whether the sharer is also sharing the tab audio.
208
+ */
209
+ bShareAudioOn?: boolean;
210
+ /**
211
+ * Whether the sharer is also sharing to the subsession.
212
+ */
213
+ bShareToSubsession?: boolean;
214
+ /**
215
+ * Whether the user connected via the phone.
216
+ */
217
+ isPhoneUser?: boolean;
218
+ /**
219
+ * The unified ID of a user among the main session or subsession.
220
+ */
221
+ userGuid?: string;
222
+ /**
223
+ * Whether to allow individual recording.
224
+ */
225
+ isAllowIndividualRecording: boolean;
226
+ /*
227
+ * Whether the user has a camera connected to the device.
228
+ */
229
+ isVideoConnect: boolean;
230
+ /**
231
+ * The `user_identity` from the JWT payload.
232
+ */
233
+ userIdentity?: string;
234
+ /**
235
+ * Whether the user is only connected to the audio speaker, not the microphone.
236
+ */
237
+ isSpeakerOnly?: boolean;
238
+ /**
239
+ * The phone number if the user is a public switched telephone network (PSTN) call out user.
240
+ * For privacy concerns, only the calling user has this property.
241
+ */
242
+ phoneNumber?: string;
243
+ /**
244
+ * Whether the user is in a failover process.
245
+ */
246
+ isInFailover?: boolean;
247
+ /**
248
+ * Subsession ID.
249
+ * Available if the user is in a subsession.
250
+ */
251
+ subsessionId?: string;
252
+ }
253
+
254
+ /**
255
+ * Session information.
256
+ */
257
+ interface SessionInfo {
258
+ /**
259
+ * The session topic.
260
+ */
261
+ topic: string;
262
+ /**
263
+ * Password (if it exists).
264
+ */
265
+ password: string;
266
+ /**
267
+ * User name.
268
+ */
269
+ userName: string;
270
+ /**
271
+ * User ID.
272
+ */
273
+ userId: number;
274
+ /**
275
+ * Whether the user is in the session.
276
+ */
277
+ isInMeeting: boolean;
278
+ /**
279
+ * Session ID.
280
+ */
281
+ sessionId: string;
282
+ }
283
+
284
+ export type OldUIkitFeature =
285
+ | "preview"
286
+ | "video"
287
+ | "audio"
288
+ | "share"
289
+ | "chat"
290
+ | "livestream"
291
+ | "users"
292
+ | "pstn"
293
+ | "crc"
294
+ | "ltt"
295
+ | "recording"
296
+ | "settings"
297
+ | "feedback";
298
+ export interface VirtualBackgroundImageType {
299
+ previewSmallStatus: string;
300
+ displayURL: string;
301
+ previewSmallObjectURL: string;
302
+ id: string;
303
+ imageId: string;
304
+ }
305
+
306
+ /**
307
+ * Information about a virtual background image.
308
+ */
309
+ export interface VbImageInfoType {
310
+ id: string;
311
+ fileName: string;
312
+ displayName: string;
313
+ url: string;
314
+ }
315
+
316
+ /**
317
+ * List of suspension view types.
318
+ */
319
+ export enum SuspensionViewType {
320
+ Minimized = "minimized",
321
+ Speaker = "speaker",
322
+ Gallery = "gallery",
323
+ }
324
+ /**
325
+ * List of suspension view types.
326
+ */
327
+ export type SuspensionViewValue = (typeof SuspensionViewType)[keyof typeof SuspensionViewType];
328
+
329
+ /**
330
+ * List of audio/video playbacks to be used in the playback feature.
331
+ */
332
+ export interface AudioVideoPlaybacks {
333
+ title: string;
334
+ url: string;
335
+ }
336
+
337
+ // BEGIN VideoClientEvent union (auto-generated)
338
+ export type VideoClientEvent =
339
+ | "connection-change"
340
+ | "user-added"
341
+ | "user-updated"
342
+ | "user-removed"
343
+ | "video-active-change"
344
+ | "video-dimension-change"
345
+ | "active-speaker"
346
+ | "host-ask-unmute-audio"
347
+ | "current-audio-change"
348
+ | "dialout-state-change"
349
+ | "audio-statistic-data-change"
350
+ | "video-statistic-data-change"
351
+ | "chat-on-message"
352
+ | "chat-privilege-change"
353
+ | "command-channel-status"
354
+ | "command-channel-message"
355
+ | "recording-change"
356
+ | "individual-recording-change"
357
+ | "auto-play-audio-failed"
358
+ | "device-change"
359
+ | "video-capturing-change"
360
+ | "active-share-change"
361
+ | "share-content-dimension-change"
362
+ | "peer-share-state-change"
363
+ | "share-privilege-change"
364
+ | "passively-stop-share"
365
+ | "share-content-change"
366
+ | "peer-video-state-change"
367
+ | "share-audio-change"
368
+ | "subsession-invite-to-join"
369
+ | "subsession-countdown"
370
+ | "subsession-time-up"
371
+ | "closing-subsession-countdown"
372
+ | "subsession-broadcast-message"
373
+ | "subsession-ask-for-help"
374
+ | "subsession-ask-for-help-response"
375
+ | "subsession-state-change"
376
+ | "main-session-user-updated"
377
+ | "video-virtual-background-preload-change"
378
+ | "media-sdk-change"
379
+ | "video-detailed-data-change"
380
+ | "caption-status"
381
+ | "caption-message"
382
+ | "caption-enable"
383
+ | "caption-language-lock"
384
+ | "share-can-see-screen"
385
+ | "far-end-camera-request-control"
386
+ | "far-end-camera-response-control"
387
+ | "far-end-camera-in-control-change"
388
+ | "far-end-camera-capability-change"
389
+ | "network-quality-change"
390
+ | "share-statistic-data-change"
391
+ | "caption-host-disable"
392
+ | "remote-control-approved-change"
393
+ | "remote-control-in-control-change"
394
+ | "remote-control-clipboard-change"
395
+ | "remote-control-request-change"
396
+ | "remote-control-app-status-change"
397
+ | "remote-control-controlled-status-change"
398
+ | "live-stream-status"
399
+ | "video-aspect-ratio-change"
400
+ | "device-permission-change"
401
+ | "chat-file-upload-progress"
402
+ | "chat-file-download-progress"
403
+ | "summary-status-change"
404
+ | "meeting-query-status-change"
405
+ | "subsession-invite-back-to-main-session"
406
+ | "subsession-user-update"
407
+ | "subsession-broadcast-voice"
408
+ | "crc-call-out-state-change"
409
+ | "current-audio-level-change"
410
+ | "active-media-failed"
411
+ | "video-spotlight-change"
412
+ | "video-screenshot-taken"
413
+ | "share-content-screenshot-taken"
414
+ | "annotation-privilege-change"
415
+ | "annotation-redo-status"
416
+ | "annotation-undo-status"
417
+ | "annotation-viewer-draw-request"
418
+ | "share-camera-request"
419
+ | "share-camera-approve-change"
420
+ | "share-camera-status"
421
+ | "broadcast-streaming-status"
422
+ | "whiteboard-status-change"
423
+ | "whiteboard-privilege-change"
424
+ | "speaking-while-muted"
425
+ | "system-resource-usage-change"
426
+ | "webrtc-statistic-data-change";
427
+ // END VideoClientEvent union (auto-generated)
428
+
429
+ /**
430
+ * Configuration options for customizing the Zoom Video SDK UI Toolkit.
431
+ *
432
+ * @property videoSDKJWT - Authentication token for the Video SDK
433
+ * @property sessionName - Name of the session to join
434
+ * @property userName - Display name of the user
435
+ * @property sessionPasscode - Password/passcode for the session
436
+ * @property sessionIdleTimeoutMins - Session timeout duration in minutes
437
+ * @property webEndpoint - Web endpoint URL for the session
438
+ * @property featuresOptions - Advanced options for specific features
439
+ * @property dependentAssets - Path to dependent assets
440
+ * @property language - Interface language setting
441
+ * @property debug - Enable debug mode
442
+ */
443
+ export type CustomizationOptions = {
444
+ /**
445
+ * zoom videosdk jwt token
446
+ */
447
+ videoSDKJWT: string;
448
+ /**
449
+ * sessionName
450
+ */
451
+ sessionName: string;
452
+ /**
453
+ * userName
454
+ */
455
+ userName: string;
456
+ /**
457
+ * sessionPasscode
458
+ */
459
+ sessionPasscode?: string;
460
+ /**
461
+ * sessionIdleTimeoutMins
462
+ */
463
+ sessionIdleTimeoutMins?: number;
464
+ /**
465
+ * webEndpoint
466
+ */
467
+ webEndpoint?: string;
468
+ /**
469
+ * leaveOnPageUnload
470
+ */
471
+ leaveOnPageUnload?: boolean;
472
+ /**
473
+ * @deprecated Use featuresOptions instead.
474
+ */
475
+ features?: OldUIkitFeature[];
476
+ /**
477
+ * @deprecated Use featuresOptions.audio/video/share/virtualBackground and webEndpoint instead.
478
+ */
479
+ options?: {
480
+ /**
481
+ * @deprecated
482
+ */
483
+ init?: {
484
+ /**
485
+ * @deprecated Use featuresOptions.video.enforceMultipleVideos instead.
486
+ */
487
+ enforceMultipleVideos?: boolean;
488
+ /**
489
+ * @deprecated Use featuresOptions.virtualBackground.enforceVirtualBackground instead.
490
+ */
491
+ enforceVirtualBackground?: boolean;
492
+ /**
493
+ * @deprecated Use webEndpoint instead.
494
+ */
495
+ webEndpoint?: string;
496
+ };
497
+ /**
498
+ * @deprecated Use featuresOptions.audio instead.
499
+ */
500
+ audio?: {
501
+ backgroundNoiseSuppression?: boolean;
502
+ originalSound?: boolean;
503
+ syncButtonsOnHeadset?: boolean;
504
+ };
505
+ /**
506
+ * @deprecated Use featuresOptions.video instead.
507
+ */
508
+ video?: {
509
+ originalRatio?: boolean;
510
+ virtualBackground?: boolean;
511
+ };
512
+ /**
513
+ * @deprecated Use featuresOptions.share instead.
514
+ */
515
+ share?: {
516
+ controls?: boolean;
517
+ displaySurface?: boolean;
518
+ hideShareAudioOption?: boolean;
519
+ optimizedForSharedVideo?: boolean;
520
+ };
521
+ };
522
+ /**
523
+ * @deprecated Use featuresOptions.virtualBackground instead.
524
+ */
525
+ virtualBackground?: {
526
+ allowVirtualBackground?: boolean;
527
+ allowVirtualBackgroundUpload?: boolean;
528
+ virtualBackgrounds?: string[];
529
+ };
530
+ /**
531
+ * features options
532
+ */
533
+ featuresOptions?: {
534
+ video?: {
535
+ enable: boolean;
536
+ /**
537
+ * @default false
538
+ * @see https://marketplacefront.zoom.us/sdk/custom/web/interfaces/ZoomVideo.InitOptions.html#enforceMultipleVideos
539
+ */
540
+ enforceMultipleVideos?: boolean;
541
+ originalRatio?: boolean;
542
+ /**
543
+ * @default false
544
+ * @see https://marketplacefront.zoom.us/sdk/custom/web/interfaces/ZoomVideo.InitOptions.html#enforceMultipleVideos disableRenderLimits
545
+ */
546
+ disableRenderLimits?: boolean;
547
+ };
548
+ audio?: {
549
+ enable: boolean;
550
+ backgroundNoiseSuppression?: boolean;
551
+ originalSound?: boolean;
552
+ syncButtonsOnHeadset?: boolean;
553
+ joinAudioConsent?: boolean; // default true, if false, will not show join audio consent panel
554
+ };
555
+ secondaryAudio?: {
556
+ enable: boolean;
557
+ };
558
+ share?: {
559
+ enable: boolean;
560
+ // /**
561
+ // * Enables configuring specific content to share within supported browsers. https://caniuse.com/mdn-api_mediadevices_getdisplaymedia_controller_option
562
+ // */
563
+ // controls?: boolean;
564
+ // /**
565
+ // * Enables configuring specific share surfaces within supported browsers. https://caniuse.com/mdn-api_mediadevices_getdisplaymedia_monitortypesurfaces_option
566
+ // */
567
+ // displaySurface?: boolean;
568
+ // /**
569
+ // * Enables or disables the share computer audio option within supported browsers. https://caniuse.com/mdn-api_mediadevices_getdisplaymedia_systemaudio_option
570
+ // */
571
+ // hideShareAudioOption?: boolean;
572
+ // /**
573
+ // * Prioritizes frame rate over resolution for better screen sharing of videos.
574
+ // */
575
+ // optimizedForSharedVideo?: boolean;
576
+ };
577
+ chat?: {
578
+ enable: boolean;
579
+ enableEmoji: boolean;
580
+ };
581
+ users?: {
582
+ enable: boolean;
583
+ };
584
+ settings?: {
585
+ enable: boolean;
586
+ };
587
+ recording?: {
588
+ enable: boolean;
589
+ };
590
+ invite?: {
591
+ enable: boolean;
592
+ inviteLink?: string;
593
+ };
594
+ theme?: {
595
+ enable: boolean;
596
+ defaultTheme?: "light" | "dark" | "blue" | "green";
597
+ };
598
+ viewMode?: {
599
+ enable: boolean; // enable switch view mode
600
+ defaultViewMode: SuspensionViewValue;
601
+ viewModes: SuspensionViewValue[];
602
+ };
603
+ phone?: {
604
+ enable: boolean;
605
+ };
606
+ preview?: {
607
+ enable: boolean;
608
+ isAllowModifyName?: boolean;
609
+ };
610
+ feedback?: {
611
+ // feedback after end/leave session
612
+ enable: boolean;
613
+ };
614
+ troubleshoot?: {
615
+ enable: boolean;
616
+ };
617
+ caption?: {
618
+ enable: boolean;
619
+ };
620
+ playback?: {
621
+ enable: boolean;
622
+ /**
623
+ * List of audio/video playbacks to be used in the playback feature.
624
+ */
625
+ audioVideoPlaybacks: AudioVideoPlaybacks[];
626
+ };
627
+ subsession?: {
628
+ enable: boolean;
629
+ };
630
+ leave?: {
631
+ enable: boolean;
632
+ };
633
+ virtualBackground?: {
634
+ enable: boolean;
635
+ enforceVirtualBackground?: boolean; // only for WASM test
636
+ allowVirtualBackgroundUpload?: boolean;
637
+ virtualBackgrounds?: {
638
+ url: string;
639
+ displayName?: string;
640
+ }[];
641
+ };
642
+ footer?: {
643
+ enable: boolean;
644
+ };
645
+ header?: {
646
+ enable: boolean;
647
+ };
648
+ screenshot?: {
649
+ video?: {
650
+ /** Enable video-frame screenshots. @default false */
651
+ enable: boolean; // default false
652
+ };
653
+ share?: {
654
+ /** Enable shared-screen screenshots. @default false */
655
+ enable: boolean; // default false
656
+ };
657
+ };
658
+ // whiteboard?: {
659
+ // enable: boolean;
660
+ // enableExport?: boolean;
661
+ // enableViewerUserExport?: boolean;
662
+ // };
663
+ };
664
+ /**
665
+ * dependent assets
666
+ */
667
+ dependentAssets?: string;
668
+ /**
669
+ * language
670
+ */
671
+ language?: string;
672
+ /**
673
+ * debug mode
674
+ */
675
+ debug?: boolean;
676
+ };
677
+
678
+ /**
679
+ * Zoom Video SDK UI Toolkit API
680
+ * Provides methods for managing video sessions and UI components
681
+ */
682
+ export interface UIToolkit {
683
+ /**
684
+ * Opens the video preview in a specified container.
685
+ * Use this before joining a session to test video settings.
686
+ *
687
+ * @param container - DOM element to render the preview
688
+ * @param config - Session configuration options
689
+ * @param options - Preview options
690
+ * @category Customize Layout
691
+ */
692
+ openPreview(container: HTMLElement, config: CustomizationOptions, options: { onClickJoin: () => void }): void;
693
+
694
+ /**
695
+ * Closes an active video preview.
696
+ * @param container - DOM element containing the preview
697
+ * @category Customize Layout
698
+ */
699
+ closePreview(container: HTMLElement): void;
700
+
701
+ /**
702
+ * Joins a Zoom video session with specified configuration.
703
+ *
704
+ * @param container - DOM element to render the session UI
705
+ * @param config - Session configuration options
706
+ */
707
+ joinSession(container: HTMLElement, config: CustomizationOptions): void;
708
+
709
+ /**
710
+ * Leaves the session
711
+ */
712
+ leaveSession(): void;
713
+
714
+ /**
715
+ * Closes the current video session.
716
+ *
717
+ * @param container - DOM element containing the session
718
+ */
719
+ closeSession(container?: HTMLElement): void;
720
+ /**
721
+ * Changes the view type
722
+ * @param viewType - The view type to change to.
723
+ */
724
+ changeViewType(viewType: SuspensionViewValue): void;
725
+
726
+ /**
727
+ * Registers a callback for session join events.
728
+ * The callback will be triggered when successfully joining a session.
729
+ * @param callback - Function to execute on session join.
730
+ * @category Events
731
+ */
732
+ onSessionJoined(callback: () => void): void;
733
+
734
+ /**
735
+ * Removes a previously registered session join callback.
736
+ *
737
+ * @param callback - Function to remove from event listeners.
738
+ * @category Events
739
+ */
740
+ offSessionJoined(callback: () => void): void;
741
+
742
+ /**
743
+ * Registers a callback for session close events.
744
+ * The callback will be triggered when a session ends.
745
+ *
746
+ * @param callback - Function to execute on session close.
747
+ * @category Events
748
+ */
749
+ onSessionClosed(callback: () => void): void;
750
+
751
+ /**
752
+ * Removes a previously registered session close callback.
753
+ *
754
+ * @param callback - Function to remove from event listeners.
755
+ * @category Events
756
+ */
757
+ offSessionClosed(callback: () => void): void;
758
+
759
+ /**
760
+ * Registers a callback for when you can destroy uikit.
761
+ * @param callback The callback will be triggered when all uikit components are destroyed.
762
+ * @category Events
763
+ */
764
+ onSessionDestroyed(callback: () => void): void;
765
+
766
+ /**
767
+ * Removes a previously registered session destroy callback.
768
+ * @param callback - Function to remove from event listeners.
769
+ * @category Events
770
+ */
771
+ offSessionDestroyed(callback: () => void): void;
772
+
773
+ /**
774
+ * Adds a view type change event listener.
775
+ * @param callback - The callback function to be called when the view type changes.
776
+ * @category Events
777
+ */
778
+ onViewTypeChange(callback: (event: SuspensionViewValue) => void): void;
779
+
780
+ /**
781
+ * Removes a view type change event listener.
782
+ * @param callback - The callback function to be called when the view type changes.
783
+ * @category Events
784
+ */
785
+ offViewTypeChange(callback: () => void): void;
786
+
787
+ /**
788
+ * Registers a callback for a specific event.
789
+ *
790
+ * @param event - The event name to listen for https://marketplacefront.zoom.us/sdk/custom/web/modules/VideoClient.html#on
791
+ * @param callback - The callback function to execute when the event occurs.
792
+ * @category Events
793
+ */
794
+ on(event: VideoClientEvent, callback: (payload: any) => void): void;
795
+ on(event: string, callback: (payload: any) => void): void;
796
+
797
+ /**
798
+ * Removes a previously registered event listener.
799
+ *
800
+ * @param event - The event name to remove the listener from https://marketplacefront.zoom.us/sdk/custom/web/modules/VideoClient.html#off
801
+ * @param callback - The callback function to remove from event listeners.
802
+ * @category Events
803
+ */
804
+ off(event: VideoClientEvent, callback: (payload: any) => void): void;
805
+ off(event: string, callback: (payload: any) => void): void;
806
+
807
+ /**
808
+ * Mirrors or unmirrors your self video.
809
+ * Pass `true` to mirror the local preview and `false` to restore normal orientation.
810
+ * This affects only your local view and does not impact how others see your video.
811
+ * @param mirrored - Whether to mirror the self video.
812
+ * @returns A promise that resolves when the operation completes.
813
+ * @category Video
814
+ */
815
+ mirrorVideo(mirrored: boolean): Promise<void>;
816
+
817
+ /**
818
+ * Subscribes to audio statistic data based on the type parameter.
819
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#subscribeAudioStatisticData
820
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of audio to subscribe to.
821
+ * @returns
822
+ * - `''`: Success.
823
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
824
+ * @category statistic
825
+ */
826
+ subscribeAudioStatisticData(type?: StatisticOption): ExecutedResult;
827
+
828
+ /**
829
+ * Unsubscribes to audio statistic data based on the type parameter.
830
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#unsubscribeAudioStatisticData
831
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of audio to unsubscribe to.
832
+ * @returns
833
+ * - `''`: Success.
834
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
835
+ * @category statistic
836
+ */
837
+ unsubscribeAudioStatisticData(type?: StatisticOption): ExecutedResult;
838
+
839
+ /**
840
+ * Subscribes to video statistic data based on the type parameter.
841
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#subscribeVideoStatisticData
842
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of audio should be subscribed to.
843
+ * @returns
844
+ * - `''`: Success.
845
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
846
+ * @category statistic
847
+ */
848
+ subscribeVideoStatisticData(type?: VideoStatisticOption): ExecutedResult;
849
+
850
+ /**
851
+ * Unsubscribes to video statistic data based on the type parameter.
852
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#unsubscribeVideoStatisticData
853
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of audio should be unsubscribed to.
854
+ * @returns
855
+ * - `''`: Success.
856
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
857
+ * @category statistic
858
+ */
859
+ unsubscribeVideoStatisticData(type?: VideoStatisticOption): ExecutedResult;
860
+
861
+ /**
862
+ * Subscribes to share statistic data based on the type parameter.
863
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#subscribeShareStatisticData
864
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of share to subscribe to.
865
+ * @returns
866
+ * - `''`: Success.
867
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
868
+ * @category statistic
869
+ */
870
+ subscribeShareStatisticData(type?: StatisticOption): ExecutedResult;
871
+
872
+ /**
873
+ * Unsubscribes to share statistic data based on the type parameter.
874
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/Stream.html#unsubscribeShareStatisticData
875
+ * @param type Optional. `Object { encode: Boolean, decode: Boolean }` can specify which type of share to unsubscribe to.
876
+ * @returns
877
+ * - `''`: Success.
878
+ * - `Error`: Failure. Details in {@link ErrorTypes}.
879
+ * @category statistic
880
+ */
881
+ unsubscribeShareStatisticData(type?: StatisticOption): ExecutedResult;
882
+
883
+ /**
884
+ * Check if the device is supported for custom layout.
885
+ * Only desktop and tablet are supported, mobile is not supported.
886
+ * @returns boolean
887
+ */
888
+ isSupportCustomLayout(): boolean;
889
+
890
+ /**
891
+ * @deprecated
892
+ * @param container - DOM element to show components.
893
+ * @param config - Session configuration options.
894
+ * @category Customize Layout
895
+ */
896
+ showUitoolkitComponents(container: any, config: any): void;
897
+
898
+ /**
899
+ * @deprecated
900
+ * @param container - DOM element to hide components.
901
+ * @category Customize Layout
902
+ */
903
+ hideUitoolkitComponents(container: any): void;
904
+
905
+ /**
906
+ * Shows the video component.
907
+ * @deprecated
908
+ * @param container - DOM element to show video.
909
+ * @category Customize Layout
910
+ */
911
+ showVideoComponent(container: HTMLElement): void;
912
+
913
+ /**
914
+ * Hides the video component.
915
+ * @deprecated
916
+ * @param container - DOM element containing video.
917
+ * @category Customize Layout
918
+ */
919
+ hideVideoComponent(container: HTMLElement): void;
920
+
921
+ /**
922
+ * Hides all UI toolkit components.
923
+ * @category Customize Layout
924
+ */
925
+ hideAllComponents(): void;
926
+
927
+ /**
928
+ * Shows the chat component.
929
+ *
930
+ * @param container - DOM element to show chat.
931
+ * @param options - Options for the chat component.
932
+ * @category Customize Layout
933
+ */
934
+ showChatComponent(container: HTMLElement, options?: { width?: number; height?: number; draggable?: boolean }): void;
935
+
936
+ /**
937
+ * Hides the chat component.
938
+ * @param container - DOM element containing chat.
939
+ * @category Customize Layout
940
+ */
941
+ hideChatComponent(container: HTMLElement): void;
942
+
943
+ /**
944
+ * Shows the session controls component.
945
+ *
946
+ * @param container - DOM element to show controls.
947
+ * @param options - Options for the controls component.
948
+ * @category Customize Layout
949
+ */
950
+ showControlsComponent(
951
+ container: HTMLElement,
952
+ options?: { draggable?: boolean; orientation?: "horizontal" | "vertical" },
953
+ ): void;
954
+
955
+ /**
956
+ * Hides the session controls component.
957
+ *
958
+ * @param container - DOM element containing controls.
959
+ * @category Customize Layout
960
+ */
961
+ hideControlsComponent(container: HTMLElement): void;
962
+
963
+ /**
964
+ * Shows the participants list component.
965
+ *
966
+ * @param container - DOM element to show users list.
967
+ * @param options - Options for the users component.
968
+ * @category Customize Layout
969
+ */
970
+ showUsersComponent(container: HTMLElement, options?: { width?: number; height?: number; draggable?: boolean }): void;
971
+
972
+ /**
973
+ * Hides the participants list component.
974
+ *
975
+ * @param container - DOM element containing the users list.
976
+ * @category Customize Layout
977
+ */
978
+ hideUsersComponent(container: HTMLElement): void;
979
+
980
+ /**
981
+ * Shows the settings panel component.
982
+ *
983
+ * @param container - DOM element to show settings.
984
+ * @param options - Options for the settings component.
985
+ * @category Customize Layout
986
+ */
987
+ showSettingsComponent(
988
+ container: HTMLElement,
989
+ options?: { width?: number; height?: number; draggable?: boolean },
990
+ ): void;
991
+
992
+ /**
993
+ * Hides the settings panel component.
994
+ *
995
+ * @param container - DOM element containing settings.
996
+ * @category Customize Layout
997
+ */
998
+ hideSettingsComponent(container: HTMLElement): void;
999
+
1000
+ /**
1001
+ * Get all user info
1002
+ * @returns Array<Participant>
1003
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/VideoClient.html#getAllUser
1004
+ */
1005
+ getAllUser(): Array<Participant>;
1006
+
1007
+ /**
1008
+ * Get the current user info
1009
+ * @returns Participant
1010
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/VideoClient.html#getCurrentUserInfo
1011
+ */
1012
+ getCurrentUserInfo(): Participant | null;
1013
+
1014
+ /**
1015
+ * Get the session info
1016
+ * @returns SessionInfo
1017
+ * https://marketplacefront.zoom.us/sdk/custom/web/modules/VideoClient.html#getSessionInfo
1018
+ */
1019
+ getSessionInfo(): SessionInfo | null;
1020
+
1021
+ /**
1022
+ * Destroys the UI toolkit instance and cleans up resources.
1023
+ * @returns void
1024
+ */
1025
+ destroy(): void;
1026
+
1027
+ /**
1028
+ * Get the version of the UI toolkit, Video SDK and Tailwind CSS
1029
+ * @returns {Object} { uikit: string, videosdk: string, tailwindcss: string }
1030
+ */
1031
+ version(): { uikit: string; videosdk: string; tailwindcss: string };
1032
+
1033
+ /**
1034
+ * Get the client instance when debug mode is true
1035
+ * @returns videosdk client instance https://marketplacefront.zoom.us/sdk/custom/web/modules/ZoomVideo.VideoClient.html
1036
+ */
1037
+ getClient(): any;
1038
+ }
1039
+
1040
+ declare const _default: UIToolkit;
1041
+ export default _default;