import * as JitsiConferenceErrors from './JitsiConferenceErrors';
import * as JitsiConferenceEvents from './JitsiConferenceEvents';
import JitsiConnection from './JitsiConnection';
import * as JitsiConnectionErrors from './JitsiConnectionErrors';
import * as JitsiConnectionEvents from './JitsiConnectionEvents';
import * as JitsiMediaDevicesEvents from './JitsiMediaDevicesEvents';
import JitsiTrackError from './JitsiTrackError';
import * as JitsiTrackErrors from './JitsiTrackErrors';
import * as JitsiTrackEvents from './JitsiTrackEvents';
import * as JitsiTranscriptionStatus from './JitsiTranscriptionStatus';
import { TrackStreamingStatus } from './modules/connectivity/TrackStreamingStatus';
import * as DetectionEvents from './modules/detection/DetectionEvents';
import TrackVADEmitter from './modules/detection/TrackVADEmitter';
import ProxyConnectionService from './modules/proxyconnection/ProxyConnectionService';
import * as VideoSIPGWConstants from './modules/videosipgw/VideoSIPGWConstants';
import AudioMixer from './modules/webaudio/AudioMixer';
import * as ConnectionQualityEvents from './service/connectivity/ConnectionQualityEvents';
import * as E2ePingEvents from './service/e2eping/E2ePingEvents';
import { createPresenterEffect, createRnnoiseProcessor, createScreenshotCaptureEffect, createVirtualBackgroundEffect } from "./modules/stream-effects";
interface ICreateLocalTrackOptions {
cameraDeviceId?: string;
devices?: any[];
firePermissionPromptIsShownEvent?: boolean;
fireSlowPromiseEvent?: boolean;
micDeviceId?: string;
resolution?: string;
}
interface IJitsiMeetJSOptions {
enableAnalyticsLogging?: boolean;
enableWindowOnErrorHandler?: boolean;
externalStorage?: Storage;
flags?: {
runInLiteMode?: boolean;
ssrcRewritingEnabled?: boolean;
};
}
declare const _default: {
version: string;
JitsiConnection: typeof JitsiConnection;
/**
* {@code ProxyConnectionService} is used to connect a remote peer to a
* local Jitsi participant without going through a Jitsi conference. It is
* currently used for room integration development, specifically wireless
* screensharing. Its API is experimental and will likely change; usage of
* it is advised against.
*/
ProxyConnectionService: typeof ProxyConnectionService;
effects: {
createPresenterEffect: typeof createPresenterEffect;
createRnnoiseProcessor: typeof createRnnoiseProcessor;
createScreenshotCaptureEffect: typeof createScreenshotCaptureEffect;
createVirtualBackgroundEffect: typeof createVirtualBackgroundEffect;
};
constants: {
recording: {
error: {
BUSY: string;
ERROR: string;
RESOURCE_CONSTRAINT: string;
UNEXPECTED_REQUEST: string;
SERVICE_UNAVAILABLE: string;
};
mode: {
FILE: string;
STREAM: string;
};
status: {
OFF: string;
ON: string;
PENDING: string;
};
};
sipVideoGW: typeof VideoSIPGWConstants;
transcriptionStatus: typeof JitsiTranscriptionStatus;
trackStreamingStatus: typeof TrackStreamingStatus;
};
events: {
conference: typeof JitsiConferenceEvents;
connection: typeof JitsiConnectionEvents;
detection: typeof DetectionEvents;
track: typeof JitsiTrackEvents;
mediaDevices: typeof JitsiMediaDevicesEvents;
connectionQuality: typeof ConnectionQualityEvents;
e2eping: typeof E2ePingEvents;
};
errors: {
conference: typeof JitsiConferenceErrors;
connection: typeof JitsiConnectionErrors;
track: typeof JitsiTrackErrors;
};
errorTypes: {
JitsiTrackError: typeof JitsiTrackError;
};
logLevels: any;
mediaDevices: unknown;
analytics: unknown;
initialize(options?: {}): void;
init(options?: IJitsiMeetJSOptions): void;
/**
* Returns whether the desktop sharing is enabled or not.
*
* @returns {boolean}
*/
isDesktopSharingEnabled(): boolean;
/**
* Returns whether the current execution environment supports WebRTC (for
* use within this library).
*
* @returns {boolean} {@code true} if WebRTC is supported in the current
* execution environment (for use within this library); {@code false},
* otherwise.
*/
isWebRtcSupported(): boolean;
setLogLevel(level: any): void;
/**
* Sets the log level to the Logger instance with given id.
*
* @param {Logger.levels} level the logging level to be set
* @param {string} id the logger id to which new logging level will be set.
* Usually it's the name of the JavaScript source file including the path
* ex. "modules/xmpp/ChatRoom.js"
*/
setLogLevelById(level: any, id: any): void;
/**
* Registers new global logger transport to the library logging framework.
*
* @param globalTransport
* @see Logger.addGlobalTransport
*/
addGlobalLogTransport(globalTransport: any): void;
/**
* Removes global logging transport from the library logging framework.
*
* @param globalTransport
* @see Logger.removeGlobalTransport
*/
removeGlobalLogTransport(globalTransport: any): void;
/**
* Sets global options which will be used by all loggers. Changing these
* works even after other loggers are created.
*
* @param options
* @see Logger.setGlobalOptions
*/
setGlobalLogOptions(options: any): void;
/**
* Creates the media tracks and returns them trough the callback.
*
* @param options Object with properties / settings specifying the tracks
* which should be created. should be created or some additional
* configurations about resolution for example.
* @param {Array} options.effects optional effects array for the track
* @param {boolean} options.firePermissionPromptIsShownEvent - if event
* JitsiMediaDevicesEvents.PERMISSION_PROMPT_IS_SHOWN should be fired
* @param {boolean} options.fireSlowPromiseEvent - if event
* JitsiMediaDevicesEvents.USER_MEDIA_SLOW_PROMISE_TIMEOUT should be fired
* @param {Array} options.devices the devices that will be requested
* @param {string} options.resolution resolution constraints
* @param {string} options.cameraDeviceId
* @param {string} options.micDeviceId
* @param {intiger} interval - the interval (in ms) for
* checking whether the desktop sharing extension is installed or not
* @param {Function} checkAgain - returns boolean. While checkAgain()==true
* createLocalTracks will wait and check on every "interval" ms for the
* extension. If the desktop extension is not install and checkAgain()==true
* createLocalTracks will finish with rejected Promise.
* @param {Function} listener - The listener will be called to notify the
* user of lib-jitsi-meet that createLocalTracks is starting external
* extension installation process.
* NOTE: If the inline installation process is not possible and external
* installation is enabled the listener property will be called to notify
* the start of external installation process. After that createLocalTracks
* will start to check for the extension on every interval ms until the
* plugin is installed or until checkAgain return false. If the extension
* is found createLocalTracks will try to get the desktop sharing track and
* will finish the execution. If checkAgain returns false, createLocalTracks
* will finish the execution with rejected Promise.
*
* @deprecated old firePermissionPromptIsShownEvent
* @returns {Promise.<{Array.}, JitsiConferenceError>} A promise
* that returns an array of created JitsiTracks if resolved, or a
* JitsiConferenceError if rejected.
*/
createLocalTracks(options: ICreateLocalTrackOptions, oldfirePermissionPromptIsShownEvent: any): any;
/**
* Create a TrackVADEmitter service that connects an audio track to an VAD (voice activity detection) processor in
* order to obtain VAD scores for individual PCM audio samples.
* @param {string} localAudioDeviceId - The target local audio device.
* @param {number} sampleRate - Sample rate at which the emitter will operate. Possible values 256, 512, 1024,
* 4096, 8192, 16384. Passing other values will default to closes neighbor.
* I.e. Providing a value of 4096 means that the emitter will process 4096 PCM samples at a time, higher values mean
* longer calls, lowers values mean more calls but shorter.
* @param {Object} vadProcessor - VAD Processors that does the actual compute on a PCM sample.The processor needs
* to implement the following functions:
* - getSampleLength() - Returns the sample size accepted by calculateAudioFrameVAD.
* - getRequiredPCMFrequency() - Returns the PCM frequency at which the processor operates.
* i.e. (16KHz, 44.1 KHz etc.)
* - calculateAudioFrameVAD(pcmSample) - Process a 32 float pcm sample of getSampleLength size.
* @returns {Promise}
*/
createTrackVADEmitter(localAudioDeviceId: any, sampleRate: any, vadProcessor: any): Promise;
/**
* Create AudioMixer, which is essentially a wrapper over web audio ChannelMergerNode. It essentially allows the
* user to mix multiple MediaStreams into a single one.
*
* @returns {AudioMixer}
*/
createAudioMixer(): AudioMixer;
/**
* Go through all audio devices on the system and return one that is active, i.e. has audio signal.
*
* @returns Promise