import { CommonInstance, ICommonInstanceEventMap } from "./common";
import { RenderTarget } from "../core/types";
import { IDialog } from "../api/dialog";
import PlayerPlugin, { IVideoFits } from "../plugins/player";
export declare class RemoteSdpFetcher
{
token: string;
param: P | undefined;
prefix: string | undefined;
fetchSdpFunc: (localDescription: RTCSessionDescription, param?: P, token?: string, prefix?: string) => Promise;
dialogId?: string;
constructor(fetchSdpFunc: (localDescription: RTCSessionDescription, param?: P, token?: string, prefix?: string) => Promise, token?: string, param?: P, prefix?: string);
fetch(localDescription: RTCSessionDescription): Promise;
close(): Promise;
}
interface ICloseEvent {
}
interface IBvWebrtcInstanceEventMap extends ICommonInstanceEventMap {
close: ICloseEvent;
}
export declare class BvWebrtcInstance extends CommonInstance {
private _muted;
private _videoFit;
private _remoteSdpFetcher?;
private _dialogId?;
constructor(player: PlayerPlugin, videoFit: keyof IVideoFits, muted: boolean, remoteSdpFetcher?: RemoteSdpFetcher, container?: RenderTarget);
get player(): PlayerPlugin;
getPlayerElement(): HTMLDivElement | null;
getVideoElement(): HTMLVideoElement | null;
setRemoteSdpFetcher(remoteSdpFetcher?: RemoteSdpFetcher): void;
getRemoteSdpFetcher(): RemoteSdpFetcher | undefined;
setVideoFit(fit: keyof IVideoFits): void;
getVideoFit(): string;
setMuted(muted?: boolean): void;
getMuted(): boolean;
mute(muted?: boolean): void;
open(muted?: boolean): Promise;
play(): Promise;
hidden(muted?: boolean): Promise;
display(muted?: boolean): Promise;
close(): Promise;
destroy(): void;
}
export {};