1 export type ToolbarButton = 'camera' | 2 'chat' | 3 'closedcaptions' | 4 'desktop' | 5 'download' | 6 'embedmeeting' | 7 'etherpad' | 8 'feedback' | 9 'filmstrip' | 10 'fullscreen' | 11 'hangup' | 12 'help' | 13 'highlight' | 14 'invite' | 15 'linktosalesforce' | 16 'livestreaming' | 17 'microphone' | 18 'mute-everyone' | 19 'mute-video-everyone' | 20 'noisesuppression' | 21 'participants-pane' | 22 'profile' | 23 'raisehand' | 24 'reactions' | 25 'recording' | 26 'security' | 27 'select-background' | 28 'settings' | 29 'shareaudio' | 30 'sharedvideo' | 31 'shortcuts' | 32 'stats' | 33 'tileview' | 34 'toggle-camera' | 35 'videoquality' | 36 'whiteboard' | 37 '__end'; 38 39 type ButtonsWithNotifyClick = 'camera' | 40 'chat' | 41 'closedcaptions' | 42 'desktop' | 43 'download' | 44 'embedmeeting' | 45 'end-meeting' | 46 'etherpad' | 47 'feedback' | 48 'filmstrip' | 49 'fullscreen' | 50 'hangup' | 51 'hangup-menu' | 52 'help' | 53 'invite' | 54 'livestreaming' | 55 'microphone' | 56 'mute-everyone' | 57 'mute-video-everyone' | 58 'participants-pane' | 59 'profile' | 60 'raisehand' | 61 'recording' | 62 'security' | 63 'select-background' | 64 'settings' | 65 'shareaudio' | 66 'sharedvideo' | 67 'shortcuts' | 68 'stats' | 69 'tileview' | 70 'toggle-camera' | 71 'videoquality' | 72 'add-passcode' | 73 '__end'; 74 75 type ParticipantMenuButtonsWithNotifyClick = 'allow-video' | 76 'ask-unmute' | 77 'conn-status' | 78 'flip-local-video' | 79 'grant-moderator' | 80 'hide-self-view' | 81 'kick' | 82 'mute' | 83 'mute-others' | 84 'mute-others-video' | 85 'mute-video' | 86 'pinToStage' | 87 'privateMessage' | 88 'remote-control' | 89 'send-participant-to-room' | 90 'verify'; 91 92 type NotifyClickButtonKey = string | 93 ButtonsWithNotifyClick | 94 ParticipantMenuButtonsWithNotifyClick; 95 96 export type NotifyClickButton = NotifyClickButtonKey | 97 { 98 key: NotifyClickButtonKey; 99 preventExecution: boolean; 100 }; 101 102 export type Sounds = 'ASKED_TO_UNMUTE_SOUND' | 103 'E2EE_OFF_SOUND' | 104 'E2EE_ON_SOUND' | 105 'INCOMING_MSG_SOUND' | 106 'KNOCKING_PARTICIPANT_SOUND' | 107 'LIVE_STREAMING_OFF_SOUND' | 108 'LIVE_STREAMING_ON_SOUND' | 109 'NO_AUDIO_SIGNAL_SOUND' | 110 'NOISY_AUDIO_INPUT_SOUND' | 111 'OUTGOING_CALL_EXPIRED_SOUND' | 112 'OUTGOING_CALL_REJECTED_SOUND' | 113 'OUTGOING_CALL_RINGING_SOUND' | 114 'OUTGOING_CALL_START_SOUND' | 115 'PARTICIPANT_JOINED_SOUND' | 116 'PARTICIPANT_LEFT_SOUND' | 117 'RAISE_HAND_SOUND' | 118 'REACTION_SOUND' | 119 'RECORDING_OFF_SOUND' | 120 'RECORDING_ON_SOUND' | 121 'TALK_WHILE_MUTED_SOUND'; 122 123 124 export interface IMobileDynamicLink { 125 apn: string; 126 appCode: string; 127 customDomain?: string; 128 ibi: string; 129 isi: string; 130 } 131 132 export interface IDeeplinkingPlatformConfig { 133 appName: string; 134 } 135 136 export interface IDeeplinkingMobileConfig extends IDeeplinkingPlatformConfig { 137 appPackage?: string; 138 appScheme: string; 139 downloadLink: string; 140 dynamicLink?: IMobileDynamicLink; 141 fDroidUrl?: string; 142 } 143 144 export interface IDeeplinkingConfig { 145 android?: IDeeplinkingMobileConfig; 146 desktop?: IDeeplinkingPlatformConfig; 147 disabled?: boolean; 148 hideLogo?: boolean; 149 ios?: IDeeplinkingMobileConfig; 150 } 151 152 export interface INoiseSuppressionConfig { 153 krisp?: { 154 debugLogs?: boolean; 155 enabled?: boolean; 156 logProcessStats?: boolean; 157 }; 158 } 159 160 export interface IWatchRTCConfiguration { 161 allowBrowserLogCollection?: boolean; 162 collectionInterval?: number; 163 console?: { 164 level: string; 165 override: boolean; 166 }; 167 debug?: boolean; 168 keys?: any; 169 logGetStats?: boolean; 170 proxyUrl?: string; 171 rtcApiKey: string; 172 rtcPeerId?: string; 173 rtcRoomId?: string; 174 rtcTags?: string[]; 175 rtcToken?: string; 176 wsUrl?: string; 177 } 178 179 export interface IConfig { 180 _desktopSharingSourceDevice?: string; 181 _immediateReloadThreshold?: string; 182 _screenshotHistoryRegionUrl?: number; 183 analytics?: { 184 amplitudeAPPKey?: string; 185 amplitudeIncludeUTM?: boolean; 186 blackListedEvents?: string[]; 187 disabled?: boolean; 188 googleAnalyticsTrackingId?: string; 189 matomoEndpoint?: string; 190 matomoSiteID?: string; 191 obfuscateRoomName?: boolean; 192 rtcstatsEnabled?: boolean; 193 rtcstatsEndpoint?: string; 194 rtcstatsPollInterval?: number; 195 rtcstatsSendSdp?: boolean; 196 rtcstatsStoreLogs?: boolean; 197 rtcstatsUseLegacy?: boolean; 198 scriptURLs?: Array<string>; 199 watchRTCEnabled?: boolean; 200 whiteListedEvents?: string[]; 201 }; 202 apiLogLevels?: Array<'warn' | 'log' | 'error' | 'info' | 'debug'>; 203 appId?: string; 204 audioLevelsInterval?: number; 205 audioQuality?: { 206 opusMaxAverageBitrate?: number | null; 207 stereo?: boolean; 208 }; 209 autoCaptionOnRecord?: boolean; 210 autoKnockLobby?: boolean; 211 backgroundAlpha?: number; 212 bosh?: string; 213 brandingDataUrl?: string; 214 brandingRoomAlias?: string; 215 breakoutRooms?: { 216 hideAddRoomButton?: boolean; 217 hideAutoAssignButton?: boolean; 218 hideJoinRoomButton?: boolean; 219 }; 220 buttonsWithNotifyClick?: Array<ButtonsWithNotifyClick | { 221 key: ButtonsWithNotifyClick; 222 preventExecution: boolean; 223 }>; 224 callDisplayName?: string; 225 callFlowsEnabled?: boolean; 226 callHandle?: string; 227 callStatsConfigParams?: { 228 additionalIDs?: { 229 customerID?: string; 230 fqExtensionID?: string; 231 meetingsName?: string; 232 pbxExtensionID?: string; 233 pbxID?: string; 234 productName?: string; 235 serverName?: string; 236 sessionID?: string; 237 tenantID?: string; 238 }; 239 applicationVersion?: string; 240 collectIP?: boolean; 241 collectLegacyStats?: boolean; 242 disableBeforeUnloadHandler?: boolean; 243 disablePrecalltest?: boolean; 244 siteID?: string; 245 }; 246 callStatsID?: string; 247 callStatsSecret?: string; 248 callUUID?: string; 249 channelLastN?: number; 250 chromeExtensionBanner?: { 251 chromeExtensionsInfo?: Array<{ id: string; path: string; }>; 252 edgeUrl?: string; 253 url?: string; 254 }; 255 conferenceInfo?: { 256 alwaysVisible?: Array<string>; 257 autoHide?: Array<string>; 258 }; 259 conferenceRequestUrl?: string; 260 connectionIndicators?: { 261 autoHide?: boolean; 262 autoHideTimeout?: number; 263 disableDetails?: boolean; 264 disabled?: boolean; 265 inactiveDisabled?: boolean; 266 }; 267 constraints?: { 268 video?: { 269 height?: { 270 ideal?: number; 271 max?: number; 272 min?: number; 273 }; 274 }; 275 }; 276 corsAvatarURLs?: Array<string>; 277 customParticipantMenuButtons?: Array<{ icon: string; id: string; text: string; }>; 278 customToolbarButtons?: Array<{ backgroundColor?: string; icon: string; id: string; text: string; }>; 279 deeplinking?: IDeeplinkingConfig; 280 defaultLanguage?: string; 281 defaultLocalDisplayName?: string; 282 defaultLogoUrl?: string; 283 defaultRemoteDisplayName?: string; 284 deploymentInfo?: { 285 envType?: string; 286 environment?: string; 287 product?: string; 288 region?: string; 289 shard?: string; 290 userRegion?: string; 291 }; 292 deploymentUrls?: { 293 downloadAppsUrl?: string; 294 userDocumentationURL?: string; 295 }; 296 desktopSharingFrameRate?: { 297 max?: number; 298 min?: number; 299 }; 300 dialInConfCodeUrl?: string; 301 dialInNumbersUrl?: string; 302 dialOutAuthUrl?: string; 303 dialOutRegionUrl?: string; 304 disable1On1Mode?: boolean | null; 305 disableAddingBackgroundImages?: boolean; 306 disableAudioLevels?: boolean; 307 disableBeforeUnloadHandlers?: boolean; 308 disableChatSmileys?: boolean; 309 disableDeepLinking?: boolean; 310 disableFilmstripAutohiding?: boolean; 311 disableFocus?: boolean; 312 disableIframeAPI?: boolean; 313 disableIncomingMessageSound?: boolean; 314 disableInitialGUM?: boolean; 315 disableInviteFunctions?: boolean; 316 disableJoinLeaveSounds?: boolean; 317 disableLocalVideoFlip?: boolean; 318 disableModeratorIndicator?: boolean; 319 disablePolls?: boolean; 320 disableProfile?: boolean; 321 disableReactions?: boolean; 322 disableReactionsModeration?: boolean; 323 disableRecordAudioNotification?: boolean; 324 disableRemoteMute?: boolean; 325 disableRemoveRaisedHandOnFocus?: boolean; 326 disableResponsiveTiles?: boolean; 327 disableRtx?: boolean; 328 disableScreensharingVirtualBackground?: boolean; 329 disableSelfView?: boolean; 330 disableSelfViewSettings?: boolean; 331 disableShortcuts?: boolean; 332 disableShowMoreStats?: boolean; 333 disableSimulcast?: boolean; 334 disableSpeakerStatsSearch?: boolean; 335 disableThirdPartyRequests?: boolean; 336 disableTileEnlargement?: boolean; 337 disableTileView?: boolean; 338 disableVirtualBackground?: boolean; 339 disabledNotifications?: Array<string>; 340 disabledSounds?: Array<Sounds>; 341 doNotFlipLocalVideo?: boolean; 342 doNotStoreRoom?: boolean; 343 dropbox?: { 344 appKey: string; 345 redirectURI?: string; 346 }; 347 dynamicBrandingUrl?: string; 348 e2ee?: { 349 externallyManagedKey?: boolean; 350 labels?: { 351 description?: string; 352 label?: string; 353 tooltip?: string; 354 warning?: string; 355 }; 356 }; 357 e2eeLabels?: { 358 description?: string; 359 label?: string; 360 tooltip?: string; 361 warning?: string; 362 }; 363 e2eping?: { 364 enabled?: boolean; 365 maxConferenceSize?: number; 366 maxMessagesPerSecond?: number; 367 numRequests?: number; 368 }; 369 enableAutomaticUrlCopy?: boolean; 370 enableCalendarIntegration?: boolean; 371 enableClosePage?: boolean; 372 enableDisplayNameInStats?: boolean; 373 enableEmailInStats?: boolean; 374 enableEncodedTransformSupport?: boolean; 375 enableForcedReload?: boolean; 376 enableIceRestart?: boolean; 377 enableInsecureRoomNameWarning?: boolean; 378 enableLipSync?: boolean; 379 enableLobbyChat?: boolean; 380 enableNoAudioDetection?: boolean; 381 enableNoisyMicDetection?: boolean; 382 enableOpusRed?: boolean; 383 enableRemb?: boolean; 384 enableSaveLogs?: boolean; 385 enableTcc?: boolean; 386 enableWebHIDFeature?: boolean; 387 enableWelcomePage?: boolean; 388 etherpad_base?: string; 389 faceLandmarks?: { 390 captureInterval?: number; 391 enableDisplayFaceExpressions?: boolean; 392 enableFaceCentering?: boolean; 393 enableFaceExpressionsDetection?: boolean; 394 enableRTCStats?: boolean; 395 faceCenteringThreshold?: number; 396 }; 397 feedbackPercentage?: number; 398 fileRecordingsEnabled?: boolean; 399 fileRecordingsServiceEnabled?: boolean; 400 fileRecordingsServiceSharingEnabled?: boolean; 401 filmstrip?: { 402 disableResizable?: boolean; 403 disableStageFilmstrip?: boolean; 404 disableTopPanel?: boolean; 405 disabled?: boolean; 406 minParticipantCountForTopPanel?: number; 407 }; 408 firefox_fake_device?: string; 409 flags?: { 410 ssrcRewritingEnabled: boolean; 411 }; 412 focusUserJid?: string; 413 gatherStats?: boolean; 414 giphy?: { 415 displayMode?: 'all' | 'tile' | 'chat'; 416 enabled?: boolean; 417 proxyUrl?: string; 418 rating?: 'g' | 'pg' | 'pg-13' | 'r'; 419 sdkKey?: string; 420 tileTime?: number; 421 }; 422 googleApiApplicationClientID?: string; 423 gravatar?: { 424 baseUrl?: string; 425 disabled?: boolean; 426 }; 427 gravatarBaseURL?: string; 428 guestDialOutStatusUrl?: string; 429 guestDialOutUrl?: string; 430 helpCentreURL?: string; 431 hiddenPremeetingButtons?: Array<'microphone' | 'camera' | 'select-background' | 'invite' | 'settings'>; 432 hideAddRoomButton?: boolean; 433 hideConferenceSubject?: boolean; 434 hideConferenceTimer?: boolean; 435 hideDisplayName?: boolean; 436 hideDominantSpeakerBadge?: boolean; 437 hideEmailInSettings?: boolean; 438 hideLobbyButton?: boolean; 439 hideParticipantsStats?: boolean; 440 hideRecordingLabel?: boolean; 441 hosts?: { 442 anonymousdomain?: string; 443 authdomain?: string; 444 domain: string; 445 focus?: string; 446 muc: string; 447 visitorFocus?: string; 448 }; 449 iAmRecorder?: boolean; 450 iAmSipGateway?: boolean; 451 inviteAppName?: string | null; 452 inviteServiceCallFlowsUrl?: string; 453 inviteServiceUrl?: string; 454 jaasActuatorUrl?: string; 455 jaasFeedbackMetadataURL?: string; 456 jaasTokenUrl?: string; 457 legalUrls?: { 458 helpCentre: string; 459 privacy: string; 460 security: string; 461 terms: string; 462 }; 463 liveStreaming?: { 464 dataPrivacyLink?: string; 465 enabled?: boolean; 466 helpLink?: string; 467 termsLink?: string; 468 validatorRegExpString?: string; 469 }; 470 liveStreamingEnabled?: boolean; 471 lobby?: { 472 autoKnock?: boolean; 473 enableChat?: boolean; 474 }; 475 localRecording?: { 476 disable?: boolean; 477 disableSelfRecording?: boolean; 478 notifyAllParticipants?: boolean; 479 }; 480 localSubject?: string; 481 locationURL?: URL; 482 maxFullResolutionParticipants?: number; 483 microsoftApiApplicationClientID?: string; 484 moderatedRoomServiceUrl?: string; 485 mouseMoveCallbackInterval?: number; 486 noiseSuppression?: INoiseSuppressionConfig; 487 noticeMessage?: string; 488 notificationTimeouts?: { 489 long?: number; 490 medium?: number; 491 short?: number; 492 }; 493 notifications?: Array<string>; 494 openSharedDocumentOnJoin?: boolean; 495 opusMaxAverageBitrate?: number; 496 p2p?: { 497 backToP2PDelay?: number; 498 codecPreferenceOrder?: Array<string>; 499 enabled?: boolean; 500 iceTransportPolicy?: string; 501 mobileCodecPreferenceOrder?: Array<string>; 502 stunServers?: Array<{ urls: string; }>; 503 }; 504 participantMenuButtonsWithNotifyClick?: Array<string | ParticipantMenuButtonsWithNotifyClick | { 505 key: string | ParticipantMenuButtonsWithNotifyClick; 506 preventExecution: boolean; 507 }>; 508 participantsPane?: { 509 hideModeratorSettingsTab?: boolean; 510 hideMoreActionsButton?: boolean; 511 hideMuteAllButton?: boolean; 512 }; 513 pcStatsInterval?: number; 514 peopleSearchQueryTypes?: string[]; 515 peopleSearchUrl?: string; 516 preferredTranscribeLanguage?: string; 517 prejoinConfig?: { 518 enabled?: boolean; 519 hideDisplayName?: boolean; 520 hideExtraJoinButtons?: Array<string>; 521 }; 522 prejoinPageEnabled?: boolean; 523 readOnlyName?: boolean; 524 recordingLimit?: { 525 appName?: string; 526 appURL?: string; 527 limit?: number; 528 }; 529 recordingService?: { 530 enabled?: boolean; 531 hideStorageWarning?: boolean; 532 sharingEnabled?: boolean; 533 }; 534 recordingSharingUrl?: string; 535 remoteVideoMenu?: { 536 disableGrantModerator?: boolean; 537 disableKick?: boolean; 538 disablePrivateChat?: boolean; 539 disabled?: boolean; 540 }; 541 replaceParticipant?: string; 542 requireDisplayName?: boolean; 543 resolution?: number; 544 roomPasswordNumberOfDigits?: number; 545 salesforceUrl?: string; 546 screenshotCapture?: { 547 enabled?: boolean; 548 mode?: 'always' | 'recording'; 549 }; 550 securityUi?: { 551 disableLobbyPassword?: boolean; 552 hideLobbyButton?: boolean; 553 }; 554 serviceUrl?: string; 555 sipInviteUrl?: string; 556 speakerStats?: { 557 disableSearch?: boolean; 558 disabled?: boolean; 559 order?: Array<'role' | 'name' | 'hasLeft'>; 560 }; 561 speakerStatsOrder?: Array<'role' | 'name' | 'hasLeft'>; 562 startAudioMuted?: number; 563 startAudioOnly?: boolean; 564 startLastN?: number; 565 startScreenSharing?: boolean; 566 startSilent?: boolean; 567 startVideoMuted?: number; 568 startWithAudioMuted?: boolean; 569 startWithVideoMuted?: boolean; 570 stereo?: boolean; 571 subject?: string; 572 testing?: { 573 assumeBandwidth?: boolean; 574 callStatsThreshold?: number; 575 disableE2EE?: boolean; 576 mobileXmppWsThreshold?: number; 577 noAutoPlayVideo?: boolean; 578 p2pTestMode?: boolean; 579 testMode?: boolean; 580 }; 581 tileView?: { 582 disabled?: boolean; 583 numberOfVisibleTiles?: number; 584 }; 585 tokenAuthUrl?: string; 586 tokenAuthUrlAutoRedirect?: string; 587 tokenLogoutUrl?: string; 588 toolbarButtons?: Array<ToolbarButton>; 589 toolbarConfig?: { 590 alwaysVisible?: boolean; 591 autoHideWhileChatIsOpen?: boolean; 592 initialTimeout?: number; 593 timeout?: number; 594 }; 595 transcribeWithAppLanguage?: boolean; 596 transcribingEnabled?: boolean; 597 transcription?: { 598 autoCaptionOnRecord?: boolean; 599 disableStartForAll?: boolean; 600 enabled?: boolean; 601 preferredLanguage?: string; 602 translationLanguages?: Array<string>; 603 translationLanguagesHead?: Array<string>; 604 useAppLanguage?: boolean; 605 }; 606 useHostPageLocalStorage?: boolean; 607 useTurnUdp?: boolean; 608 videoQuality?: { 609 codecPreferenceOrder?: Array<string>; 610 maxBitratesVideo?: { 611 [key: string]: { 612 high?: number; 613 low?: number; 614 standard?: number; 615 }; 616 }; 617 minHeightForQualityLvl?: { 618 [key: number]: string; 619 }; 620 mobileCodecPreferenceOrder?: Array<string>; 621 persist?: boolean; 622 }; 623 watchRTCConfigParams?: IWatchRTCConfiguration; 624 webhookProxyUrl?: string; 625 webrtcIceTcpDisable?: boolean; 626 webrtcIceUdpDisable?: boolean; 627 websocket?: string; 628 websocketKeepAliveUrl?: string; 629 welcomePage?: { 630 customUrl?: string; 631 disabled?: boolean; 632 }; 633 whiteboard?: { 634 collabServerBaseUrl?: string; 635 enabled?: boolean; 636 }; 637 }