import ActiveSpeakerPolicy from '../activespeakerpolicy/ActiveSpeakerPolicy'; import AudioMixController from '../audiomixcontroller/AudioMixController'; import AudioVideoController from '../audiovideocontroller/AudioVideoController'; import AudioVideoFacade from '../audiovideofacade/AudioVideoFacade'; import AudioVideoObserver from '../audiovideoobserver/AudioVideoObserver'; import DeviceChangeObserver from '../devicechangeobserver/DeviceChangeObserver'; import Device from '../devicecontroller/Device'; import DeviceController from '../devicecontroller/DeviceController'; import DevicePermission from '../devicecontroller/DevicePermission'; import RealtimeController from '../realtimecontroller/RealtimeController'; import VideoTile from '../videotile/VideoTile'; import VideoTileController from '../videotilecontroller/VideoTileController'; export default class DefaultAudioVideoFacade implements AudioVideoFacade { private audioVideoController; private videoTileController; private realtimeController; private audioMixController; private deviceController; constructor(audioVideoController: AudioVideoController, videoTileController: VideoTileController, realtimeController: RealtimeController, audioMixController: AudioMixController, deviceController: DeviceController); addObserver(observer: AudioVideoObserver): void; removeObserver(observer: AudioVideoObserver): void; start(): void; stop(): void; bindAudioElement(element: HTMLAudioElement): boolean; unbindAudioElement(): void; bindVideoElement(tileId: number, videoElement: HTMLVideoElement): void; unbindVideoElement(tileId: number): void; startLocalVideoTile(): number; stopLocalVideoTile(): void; hasStartedLocalVideoTile(): boolean; removeLocalVideoTile(): void; getLocalVideoTile(): VideoTile | null; pauseVideoTile(tileId: number): void; unpauseVideoTile(tileId: number): void; getVideoTile(tileId: number): VideoTile | null; getAllRemoteVideoTiles(): VideoTile[]; getAllVideoTiles(): VideoTile[]; addVideoTile(): VideoTile; removeVideoTile(tileId: number): void; removeVideoTilesByAttendeeId(attendeeId: string): number[]; removeAllVideoTiles(): void; captureVideoTile(tileId: number): ImageData | null; realtimeSubscribeToAttendeeIdPresence(callback: (attendeeId: string, present: boolean) => void): void; realtimeUnsubscribeToAttendeeIdPresence(callback: (attendeeId: string, present: boolean) => void): void; realtimeSetCanUnmuteLocalAudio(canUnmute: boolean): void; realtimeSubscribeToSetCanUnmuteLocalAudio(callback: (canUnmute: boolean) => void): void; realtimeUnsubscribeToSetCanUnmuteLocalAudio(callback: (canUnmute: boolean) => void): void; realtimeCanUnmuteLocalAudio(): boolean; realtimeMuteLocalAudio(): void; realtimeUnmuteLocalAudio(): boolean; realtimeSubscribeToMuteAndUnmuteLocalAudio(callback: (muted: boolean) => void): void; realtimeUnsubscribeToMuteAndUnmuteLocalAudio(callback: (muted: boolean) => void): void; realtimeIsLocalAudioMuted(): boolean; realtimeSubscribeToVolumeIndicator(attendeeId: string, callback: (attendeeId: string, volume: number | null, muted: boolean | null, signalStrength: number | null) => void): void; realtimeUnsubscribeFromVolumeIndicator(attendeeId: string): void; realtimeSubscribeToLocalSignalStrengthChange(callback: (signalStrength: number) => void): void; realtimeUnsubscribeToLocalSignalStrengthChange(callback: (signalStrength: number) => void): void; realtimeSubscribeToFatalError(callback: (error: Error) => void): void; realtimeUnsubscribeToFatalError(callback: (error: Error) => void): void; subscribeToActiveSpeakerDetector(policy: ActiveSpeakerPolicy, callback: (activeSpeakers: string[]) => void, scoresCallback?: (scores: { [attendeeId: string]: number; }) => void, scoresCallbackIntervalMs?: number): void; unsubscribeFromActiveSpeakerDetector(callback: (activeSpeakers: string[]) => void): void; listAudioInputDevices(): Promise; listVideoInputDevices(): Promise; listAudioOutputDevices(): Promise; chooseAudioInputDevice(device: Device): Promise; chooseVideoInputDevice(device: Device): Promise; chooseAudioOutputDevice(deviceId: string | null): Promise; addDeviceChangeObserver(observer: DeviceChangeObserver): void; removeDeviceChangeObserver(observer: DeviceChangeObserver): void; createAnalyserNodeForAudioInput(): AnalyserNode | null; startVideoPreviewForVideoInput(element: HTMLVideoElement): void; stopVideoPreviewForVideoInput(element: HTMLVideoElement): void; setDeviceLabelTrigger(trigger: () => Promise): void; mixIntoAudioInput(stream: MediaStream): MediaStreamAudioSourceNode; chooseVideoInputQuality(width: number, height: number, frameRate: number, maxBandwidthKbps: number): void; enableWebAudio(flag: boolean): void; private trace; }