jitsi-meet-v15
Version:
TypeScript definitions for jitsi-meet
852 lines (695 loc) • 24.8 kB
TypeScript
export interface ConfigHosts {
domain?: string | undefined;
anonymousdomain?: string | undefined;
authdomain?: string | undefined;
call_control?: string | undefined;
focus?: string | undefined;
muc?: string | undefined;
}
export interface ConfigTesting {
disableE2EE?: false | undefined;
p2pTestMode?: false | undefined;
testMode?: false | undefined;
noAutoPlayVideo?: false | undefined;
capScreenshareBitrate?: 0 | 1 | undefined;
callStatsThreshold?: number | undefined;
}
export interface QualityConstraints {
ideal?: number | undefined;
min?: number | undefined;
max?: number | undefined;
}
export interface DimensionConstraints {
height?: QualityConstraints | undefined;
width?: QualityConstraints | undefined;
}
export interface Constraints {
video: DimensionConstraints;
}
export interface ConfigDropbox {
appKey: string;
redirectURI: string;
}
export interface VideoBitrates {
low?: number | undefined;
standard?: number | undefined;
high?: number | undefined;
}
export interface ConfigVideoQuality {
disabledCodec?: string | undefined;
preferredCodec?: string | undefined;
maxBitratesVideo?: VideoBitrates | undefined;
minHeightForQualityLvl?: Record<number, string> | undefined;
resizeDesktopForPresenter?: boolean | undefined;
}
export interface ConfigRecordingLimit {
limit?: number | undefined;
appName?: string | undefined;
appURL?: string | undefined;
}
export interface STUNServer {
urls: string;
}
export interface ConfigP2P {
enabled?: boolean | undefined;
stunServers?: STUNServer[] | undefined;
iceTransportPolicy?: string | undefined;
preferH264?: boolean | undefined;
preferredCodec?: string | undefined;
disableH264?: boolean | undefined;
disabledCodec?: string | undefined;
backToP2PDelay?: number | undefined;
}
export interface ConfigAnalytics {
googleAnalyticsTrackingId?: string | undefined;
matomoEndpoint?: string | undefined;
matomoSiteID?: string | undefined;
amplitudeAPPKey?: string | undefined;
rtcstatsEnabled?: boolean | undefined;
rtcstatsEndpoint?: string | undefined;
rtcstatsPolIInterval?: number | undefined;
scriptURLs?: string[] | undefined;
}
export interface ConfigDeploymentInfo {
shard?: string | undefined;
region?: string | undefined;
userRegion?: string | undefined;
}
export interface ChromeExtensionInfo {
id?: string | undefined;
path?: string | undefined;
}
export interface ChromeExtensionBanner {
url?: string | undefined;
chromeExtensionsInfo?: ChromeExtensionInfo[] | undefined;
}
export interface ConfigLocalRecording {
enabled?: boolean | undefined;
format?: "ogg" | "flac" | "wav" | undefined;
}
export interface ConfigE2EPing {
pingInterval?: number | undefined;
analyticsInterval?: number | undefined;
}
export interface ConfigDeploymentURLs {
userDocumentationURL?: string | undefined;
downloadAppsUrl?: string | undefined;
}
export interface ConfigRemoteVideoMenu {
disableKick?: boolean | undefined;
}
export interface Config {
hosts?: ConfigHosts | undefined;
bosh?: string | undefined;
websocket?: string | undefined;
clientNode?: string | undefined;
focusUserJid?: string | undefined;
testing?: ConfigTesting | undefined;
webrtcIceUdpDisable?: boolean | undefined;
webrtcIceTcpDisable?: boolean | undefined;
disableAudioLevels?: boolean | undefined;
audioLevelsInterval?: number | undefined;
enableNoAudioDetection?: boolean | undefined;
enableSaveLogs?: boolean | undefined;
enableNoisyMicDetection?: boolean | undefined;
startAudioOnly?: boolean | undefined;
startAudioMuted?: number | undefined;
startWithAudioMuted?: boolean | undefined;
startSilent?: boolean | undefined;
opusMaxAverageBitrate?: number | undefined;
enableOpusRed?: boolean | undefined;
resolution?: number | undefined;
maxFullResolutionParticipants?: number | undefined;
constraints?: Constraints | undefined;
disableSimulcast?: boolean | undefined;
enableLayerSuspension?: boolean | undefined;
startVideoMuted?: number | undefined;
startWithVideoMuted?: boolean | undefined;
preferH264?: boolean | undefined;
disableH264?: boolean | undefined;
desktopSharingFrameRate?: QualityConstraints | undefined;
startScreenSharing?: boolean | undefined;
fileRecordingsEnabled?: boolean | undefined;
dropbox?: ConfigDropbox | undefined;
fileRecordingsServiceEnabled?: boolean | undefined;
fileRecordingsServiceSharingEnabled?: boolean | undefined;
liveStreamingEnabled?: boolean | undefined;
transcribingEnabled?: boolean | undefined;
autoCaptionOnRecord?: boolean | undefined;
channelLastN?: number | undefined;
lastNLimits?: Record<number, number> | undefined;
videoQuality?: ConfigVideoQuality | undefined;
recordingLimit?: ConfigRecordingLimit | undefined;
disableRtx?: boolean | undefined;
enableTcc?: boolean | undefined;
enableRemb?: boolean | undefined;
enableIceRestart?: boolean | undefined;
minParticipants?: number | undefined;
useTurnUdp?: false | undefined;
openBridgeChannel?: boolean | string | undefined;
hideLobbyButton?: boolean | undefined;
requireDisplayName?: boolean | undefined;
enableWelcomePage?: boolean | undefined;
enableClosePage?: boolean | undefined;
disable1On1Mode?: boolean | undefined;
defaultLanguage?: string | undefined;
disableProfile?: boolean | undefined;
enableUserRolesBasedOnToken?: boolean | undefined;
enableFeaturesBasedOnToken?: boolean | undefined;
lockRoomGuestEnabled?: boolean | undefined;
roomPasswordNumberOfDigits?: false | number | undefined;
noticeMessage?: string | undefined;
enableCalendarIntegration?: boolean | undefined;
prejoinPageEnabled?: boolean | undefined;
enableInsecureRoomNameWarning?: boolean | undefined;
enableAutomaticUrlCopy?: boolean | undefined;
gravatarBaseURL?: string | undefined;
gatherStats?: boolean | undefined;
pcStatsInterval?: number | undefined;
callStatsID?: string | undefined;
callStatsSecret?: string | undefined;
enableDisplayNameInStats?: boolean | undefined;
enableEmailInStats?: boolean | undefined;
disableThirdPartyRequests?: boolean | undefined;
p2p?: ConfigP2P | undefined;
analytics?: ConfigAnalytics | undefined;
apiLogLevels?: string[] | undefined;
deploymentInfo?: ConfigDeploymentInfo | undefined;
disableRecordAudioNotification?: boolean | undefined;
chromeExtensionBanner?: ChromeExtensionBanner | undefined;
localRecording?: ConfigLocalRecording | undefined;
e2eping?: ConfigE2EPing | undefined;
_desktopSharingSourceDevice?: string | undefined;
disableDeepLinking?: boolean | undefined;
disableLocalVideoFlip?: boolean | undefined;
disableInviteFunctions?: boolean | undefined;
doNotStoreRoom?: boolean | undefined;
deploymentUrls?: ConfigDeploymentURLs | undefined;
remoteVideoMenu?: ConfigRemoteVideoMenu | undefined;
disableRemoteMute?: boolean | undefined;
brandingDataUrl?: string | undefined;
moderatedRoomServiceUrl?: string | undefined;
hideConferenceTimer?: boolean | undefined;
subject?: string | undefined;
// undocumented from jitsi-meet, type assumed from name;
_immediateReloadThreshold?: any;
debug?: boolean | undefined;
debugAudioLevels?: any;
dialInConfCodeUrl?: string | undefined;
dialInNumbersUrl?: string | undefined;
dialOutAuthUrl?: string | undefined;
dialOutCodesUrl?: string | undefined;
disableRemoteControl?: boolean | undefined;
displayJids?: boolean | undefined;
etherpad_base?: string | undefined;
externalConnectUrl?: string | null | undefined;
firefox_fake_device?: any;
googleApiApplicationClientID?: any;
iAmRecorder?: boolean | undefined;
iAmSipGateway?: boolean | undefined;
microsoftApiApplicationClientID?: boolean | undefined;
peopleSearchQueryTypes?: any;
peopleSearchUrl?: string | undefined;
tokenAuthUrl?: string | undefined;
brandingRoomAlias?: any;
// undocumented from lib-jitsi-meet, type assumed from name;
_peerConnStatusOutOfLastNTimeout?: any;
_peerConnStatusRtcMuteTimeout?: any;
abTesting?: any;
avgRtpStatsN?: any;
callStatsConfIDNamespace?: any;
callStatsCustomScriptUrl?: any;
desktopSharingSources?: any;
disableAEC?: boolean | undefined;
disableAGC?: boolean | undefined;
disableAP?: boolean | undefined;
disableHPF?: boolean | undefined;
disableNS?: boolean | undefined;
enableLipSync?: boolean | undefined;
enableTalkWhileMuted?: boolean | undefined;
forceJVB121Ratio?: boolean | undefined;
hiddenDomain?: any;
ignoreStartMuted?: boolean | undefined;
nick?: any;
startBitrate?: any;
}
export interface InterfaceMobileDynamicLink {
APN?: string | undefined;
APP_CODE?: string | undefined;
CUSTOM_DOMAIN?: any;
IBI?: string | undefined;
ISI?: string | undefined;
}
export interface InterfaceConfig {
APP_NAME?: string | undefined;
AUDIO_LEVEL_PRIMARY_COLOR?: string | undefined;
AUDIO_LEVEL_SECONDARY_COLOR?: string | undefined;
AUTO_PIN_LATEST_SCREEN_SHARE?: string | undefined;
BRAND_WATERMARK_LINK?: string | undefined;
CLOSE_PAGE_GUEST_HINT?: boolean | undefined;
CONNECTION_INDICATOR_AUTO_HIDE_ENABLED?: boolean | undefined;
CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT?: number | undefined;
CONNECTION_INDICATOR_DISABLED?: boolean | undefined;
DEFAULT_BACKGROUND?: string | undefined;
DEFAULT_LOCAL_DISPLAY_NAME?: string | undefined;
DEFAULT_LOGO_URL?: string | undefined;
DEFAULT_REMOTE_DISPLAY_NAME?: string | undefined;
DEFAULT_WELCOME_PAGE_LOGO_URL?: string | undefined;
DISABLE_DOMINANT_SPEAKER_INDICATOR?: boolean | undefined;
DISABLE_FOCUS_INDICATOR?: boolean | undefined;
DISABLE_JOIN_LEAVE_NOTIFICATIONS?: boolean | undefined;
DISABLE_PRESENCE_STATUS?: boolean | undefined;
DISABLE_RINGING?: boolean | undefined;
DISABLE_TRANSCRIPTION_SUBTITLES?: boolean | undefined;
DISABLE_VIDEO_BACKGROUND?: boolean | undefined;
DISPLAY_WELCOME_FOOTER?: boolean | undefined;
DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD?: boolean | undefined;
DISPLAY_WELCOME_PAGE_CONTENT?: boolean | undefined;
DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT?: boolean | undefined;
ENABLE_DIAL_OUT?: boolean | undefined;
ENABLE_FEEDBACK_ANIMATION?: boolean | undefined;
FILM_STRIP_MAX_HEIGHT?: number | undefined;
filmStripOnly?: boolean | undefined;
GENERATE_ROOMNAMES_ON_WELCOME_PAGE?: boolean | undefined;
HIDE_DEEP_LINKING_LOGO?: boolean | undefined;
HIDE_INVITE_MORE_HEADER?: boolean | undefined;
INITIAL_TOOLBAR_TIMEOUT?: number | undefined;
JITSI_WATERMARK_LINK?: string | undefined;
LANG_DETECTION?: boolean | undefined;
LIVE_STREAMING_HELP_LINK?: string | undefined;
LOCAL_THUMBNAIL_RATIO?: number | undefined;
MAXIMUM_ZOOMING_COEFFICIENT?: number | undefined;
MOBILE_APP_PROMO?: boolean | undefined;
NATIVE_APP_NAME?: string | undefined;
OPTIMAL_BROWSERS?: string[] | undefined;
POLICY_LOGO?: any;
PROVIDER_NAME?: string | undefined;
RECENT_LIST_ENABLED?: boolean | undefined;
REMOTE_THUMBNAIL_RATIO?: number | undefined;
SETTINGS_SECTIONS?: Array<"devices" | "language" | "moderator" | "profile" | "calendar"> | undefined;
SHOW_BRAND_WATERMARK?: boolean | undefined;
SHOW_CHROME_EXTENSION_BANNER?: boolean | undefined;
SHOW_DEEP_LINKING_IMAGE?: boolean | undefined;
SHOW_JITSI_WATERMARK?: boolean | undefined;
SHOW_POWERED_BY?: boolean | undefined;
SHOW_PROMOTIONAL_CLOSE_PAGE?: boolean | undefined;
SHOW_WATERMARK_FOR_GUESTS?: boolean | undefined;
SUPPORT_URL?: string | undefined;
TOOLBAR_ALWAYS_VISIBLE?: boolean | undefined;
TOOLBAR_BUTTONS?:
| Array<
| "microphone"
| "camera"
| "closedcaptions"
| "desktop"
| "embedmeeting"
| "fullscreen"
| "fodeviceselection"
| "hangup"
| "profile"
| "chat"
| "recording"
| "livestreaming"
| "etherpad"
| "sharedvideo"
| "settings"
| "raisehand"
| "videoquality"
| "filmstrip"
| "invite"
| "feedback"
| "stats"
| "shortcuts"
| "tileview"
| "videobackgroundblur"
| "download"
| "help"
| "mute-everyone"
| "security"
>
| undefined;
TOOLBAR_TIMEOUT?: number | undefined;
UNSUPPORTED_BROWSERS?: string[] | undefined;
VERTICAL_FILMSTRIP?: boolean | undefined;
VIDEO_LAYOUT_FIT?: string | undefined;
VIDEO_QUALITY_LABEL_DISABLED?: boolean | undefined;
HIDE_KICK_BUTTON_FOR_GUESTS?: boolean | undefined;
TILE_VIEW_MAX_COLUMNS?: number | undefined;
MOBILE_DOWNLOAD_LINK_ANDROID?: string | undefined;
MOBILE_DOWNLOAD_LINK_F_DROID?: string | undefined;
MOBILE_DOWNLOAD_LINK_IOS?: string | undefined;
MOBILE_DYNAMIC_LINK?: InterfaceMobileDynamicLink | undefined;
APP_SCHEME?: string | undefined;
ANDROID_APP_PACKAGE?: string | undefined;
ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT?: number | undefined;
INDICATOR_FONT_SIZES?: any;
PHONE_NUMBER_REGEX?: any;
}
export type Invitee = any;
export interface UserInfo {
email?: string | undefined;
displayName?: string | undefined;
}
export interface ExternalAPIOptions {
roomName?: string | undefined;
width?: string | number | undefined;
height?: string | number | undefined;
parentNode?: Element | undefined;
configOverwrite?: Config | undefined;
interfaceConfigOverwrite?: InterfaceConfig | undefined;
jwt?: string | undefined;
onload?: (() => any) | undefined;
invitees?: Invitee[] | undefined;
devices?: any;
userInfo?: UserInfo | undefined;
}
interface Participant {
jid: string;
role: string;
displayName: string;
id: string;
avatarUrl?: string;
}
interface Room {
isMainRoom: boolean;
id: string;
jid: string;
participants: Participant[];
}
interface Rooms {
rooms: Room[];
}
export interface Device {
deviceId: string;
groupId: string;
kind: string;
label: string;
}
export interface DeviceMap {
audioInput?: Device[] | undefined;
audioOutput?: Device[] | undefined;
videoInput?: Device[] | undefined;
}
export type ExternalAPICommands =
| "addBreakoutRoom"
| "answerKnockingParticipant"
| "approveVideo"
| "askToUnmute"
| "autoAssignToBreakoutRooms"
| "avatarUrl"
| "cancelPrivateChat"
| "closeBreakoutRoom"
| "displayName"
| "endConference"
| "email"
| "grantModerator"
| "hangup"
| "hideNotification"
| "initiatePrivateChat"
| "joinBreakoutRoom"
| "localSubject"
| "kickParticipant"
| "muteEveryone"
| "overwriteConfig"
| "overwriteNames"
| "password"
| "pinParticipant"
| "rejectParticipant"
| "removeBreakoutRoom"
| "resizeFilmStrip"
| "resizeLargeVideo"
| "sendCameraFacingMode"
| "sendChatMessage"
| "sendEndpointTextMessage"
| "sendParticipantToRoom"
| "sendTones"
| "setAssumedBandwidthBps"
| "setFollowMe"
| "setLargeVideoParticipant"
| "setMediaEncryptionKey"
| "setNoiseSuppressionEnabled"
| "setParticipantVolume"
| "setSubtitles"
| "setTileView"
| "setVideoQuality"
| "showNotification"
| "startRecording"
| "startShareVideo"
| "stopRecording"
| "stopShareVideo"
| "subject"
| "submitFeedback"
| "toggleAudio"
| "toggleCamera"
| "toggleCameraMirror"
| "toggleChat"
| "toggleE2EE"
| "toggleFilmStrip"
| "toggleLobby"
| "toggleModeration"
| "toggleNoiseSuppression"
| "toggleParticipantsPane"
| "toggleRaiseHand"
| "toggleShareScreen"
| "toggleSubtitles"
| "toggleTileView"
| "toggleVirtualBackgroundDialog"
| "toggleVideo"
| "toggleWhiteboard"
export type RecordingMode = "file" | "stream";
export interface RecordingOptions {
mode: RecordingMode;
dropboxToken?: string | undefined;
shouldShare?: boolean | undefined;
rtmpStreamKey?: string | undefined;
rtmpBroadcastID?: string | undefined;
youtubeStreamKey?: string | undefined;
youtubeBroadcastID?: string | undefined;
}
/**
* Events that can be emitted by ExternalAPI
*/
export interface CameraErrorEvent {
type: string;
message: string;
}
export interface AvatarChangedEvent {
id: string;
avatarURL: string;
}
export interface AudioAvailabilityChangedEvent {
available: boolean;
}
export interface AudioMuteStatusChangedEvent {
muted: boolean;
}
export interface EndpointTextMessageReceivedEvent {
senderInfo: {
jid: string;
id: string;
};
eventData: {
name: string;
text: string;
};
}
export interface LargeVideoChangedEvent {
id: string;
}
export type LogLevels = "info" | "error" | "debug" | "warn";
export interface LogEvent {
logLevel: LogLevels;
args: string;
}
export interface MicErrorEvent {
type: string;
message: string;
}
export type ScreenSharingSourceTypes = "window" | "screen" | "proxy" | "device";
export interface ScreenSharingStatusChangedEvent {
on: boolean;
details: {
sourceType?: ScreenSharingSourceTypes | undefined;
};
}
export interface DominantSpeakerChangedEvent {
id: string;
}
export interface TileViewChangedEvent {
enabled: boolean;
}
export interface IncomingMessageEvent {
from: string;
nick: string;
message: string;
}
export interface OutgoingMessageEvent {
message: string;
}
export interface DisplayNameChangeEvent {
id: string;
displayName: string;
}
export interface DeviceListChangedEvent {
devices: DeviceMap;
}
export interface EmailChangeEvent {
id: string;
email: string;
}
export interface FeedbackSubmittedEvent {
error?: string | undefined;
}
export interface FilmstripDisplayChangedEvent {
visible: boolean;
}
export interface ParticipantJoinedEvent {
id: string;
displayName: string;
}
export interface ParticipantKickedOutEvent {
kicked: {
id: string;
local: boolean;
};
kicker: {
id: string;
};
}
export interface ParticipantLeftEvent {
id: string;
}
export interface ParticipantRoleChangedEvent {
id: string;
role: string;
}
export interface VideoConferenceJoinedEvent {
roomName: string;
id: string;
displayName: string;
avatarURL: string;
}
export interface VideoConferenceLeftEvent {
roomName: string;
}
export interface VideoAvailabilityChangedEvent {
available: boolean;
}
export interface VideoMuteStatusChangedEvent {
muted: boolean;
}
export interface VideoQualityChangedEvent {
videoQuality: number; // height resolution of new quality
}
export interface SubjectChangeEvent {
subject: string;
}
export interface ExternalAPIEventCallbacks {
cameraError: (e: CameraErrorEvent) => void;
avatarChanged: (e: AvatarChangedEvent) => void;
audioAvailabilityChanged: (e: AudioAvailabilityChangedEvent) => void;
audioMuteStatusChanged: (e: AudioMuteStatusChangedEvent) => void;
endpointTextMessageReceived: (e: EndpointTextMessageReceivedEvent) => void;
largeVideoChanged: (e: LargeVideoChangedEvent) => void;
log: (e: LogEvent) => void;
micError: (e: MicErrorEvent) => void;
screenSharingStatusChanged: (e: ScreenSharingStatusChangedEvent) => void;
dominantSpeakerChanged: (e: DominantSpeakerChangedEvent) => void;
tileViewChanged: (e: TileViewChangedEvent) => void;
incomingMessage: (e: IncomingMessageEvent) => void;
outgoingMessage: (e: OutgoingMessageEvent) => void;
displayNameChange: (e: DisplayNameChangeEvent) => void;
deviceListChanged: (e: DeviceListChangedEvent) => void;
emailChange: (e: EmailChangeEvent) => void;
feedbackSubmitted: (e: FeedbackSubmittedEvent) => void;
filmstripDisplayChanged: (e: FilmstripDisplayChangedEvent) => void;
participantJoined: (e: ParticipantJoinedEvent) => void;
participantKickedOut: (e: ParticipantKickedOutEvent) => void;
participantLeft: (e: ParticipantLeftEvent) => void;
participantRoleChanged: (e: ParticipantRoleChangedEvent) => void;
passwordRequired: () => void;
videoConferenceJoined: (e: VideoConferenceJoinedEvent) => void;
videoConferenceLeft: (e: VideoConferenceLeftEvent) => void;
videoAvailabilityChanged: (e: VideoAvailabilityChangedEvent) => void;
videoMuteStatusChanged: (e: VideoMuteStatusChangedEvent) => void;
videoQualityChanged: (e: VideoQualityChangedEvent) => void;
readyToClose: () => void;
subjectChange: (e: SubjectChangeEvent) => void;
suspendDetected: () => void;
}
export interface TypedEventEmitter<Events, K extends keyof Events> {
addListener(event: K, listener: Events[K]): this;
on(event: K, listener: Events[K]): this;
once(event: K, listener: Events[K]): this;
removeListener(event: K, listener: Events[K]): this;
removeAllListeners(event?: K): this;
setMaxListeners(n: number): this;
getMaxListeners(): number;
listeners(event: K): Array<(e: Event) => void>;
emit(event: K, ...args: any[]): boolean;
listenerCount(type: K): number;
// Added in Node 6...
prependListener(event: K, listener: Events[K]): this;
prependOnceListener(event: K, listener: Events[K]): this;
sendProxyConnectionEvent(event?: K): this;
eventNames(): K[];
}
/**
* @see https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-iframe
*/
export interface JitsiMeetExternalAPI
extends TypedEventEmitter<ExternalAPIEventCallbacks, keyof ExternalAPIEventCallbacks>
{
// tslint gets unhappy about a constructor on an interface, but this is what is passed to it
// constructor(domain: string, options?: ExternalAPIOptions): this;
captureLargeVideoScreenshot(): Promise<string>;
getAvailableDevices(): Promise<DeviceMap>;
getCurrentDevices(): Promise<DeviceMap>;
getContentSharingParticipants(): Promise<string[]>;
getCustomAvatarBackgrounds(): Promise<string[]>;
getLivestreamUrl(): Promise<string | undefined>
isDeviceChangeAvailable(deviceType?: string): Promise<boolean>;
isAudioDisabled(): Promise<boolean>
isModerationOn(mediaType: string): Promise<boolean>
isParticipantForceMuted(participantId: string, mediaType: string): Promise<boolean>
isParticipantsPaneOpen(): Promise<boolean>
isSharingScreen(): Promise<boolean>
isStartSilent(): Promise<boolean>
getParticipantsInfo() : any;
getRoomsInfo(): Promise<Rooms>
getVideoQuality(): number;
isDeviceListAvailable(): Promise<boolean>;
getDeploymentInfo(): Promise<object>
getSupportedCommands(): string[]
getSupportedEvents(): string[]
listBreakoutRooms(): Promise<any[]>
_isNewElectronScreensharingSupported(): Promise<any>
isMultipleAudioInputSupported(): Promise<boolean>;
pinParticipant(participantId: string): void;
resizeLargeVideo(width: number, height: number): void;
setAudioInputDevice(deviceLabel: string, deviceId: string): void;
setAudioOutputDevice(deviceLabel: string, deviceId: string): void;
setLargeVideoParticipant(participantId: string): void;
setVideoInputDevice(deviceLabel: string, deviceId: string): void;
startRecording(options: RecordingOptions): void;
stopRecording(mode: RecordingMode): void;
executeCommand(command: ExternalAPICommands, ...arguments: any): void;
executeCommands(commands: Array<Record<ExternalAPICommands, any[]>>): void;
getNumberOfParticipants(): number;
getAvatarURL(participantId: string): string;
getDisplayName(participantId: string): string;
getEmail(participantId: string): string;
getIFrame(): HTMLIFrameElement;
isAudioMuted(): Promise<boolean>;
isVideoMuted(): Promise<boolean>;
isAudioAvailable(): Promise<boolean>;
isVideoAvailable(): Promise<boolean>;
invite(invitees: any[]): Promise<null>;
dispose(): void;
}
export interface JitsiMeetExternalAPIConstructor {
new(domain: string, options?: ExternalAPIOptions): JitsiMeetExternalAPI;
}
// this helps with `import type Jitsi` declarations as sometimes babel can get upset that the implementation is loaded
// at runtime
export as namespace Jitsi;