import { ENV } from '../constants';
import { SignerType, VideoCallData, VideoCreateInputOptions, VideoRequestInputOptions, VideoAcceptRequestInputOptions, VideoConnectInputOptions, EnableAudioInputOptions, EnableVideoInputOptions, VideoDisconnectOptions } from '../types';
import { VIDEO_CALL_TYPE } from '../payloads/constants';
export declare const initVideoCallData: VideoCallData;
export declare class Video {
    protected signer: SignerType;
    protected chainId: number;
    protected pgpPrivateKey: string;
    protected env: ENV;
    protected callType: VIDEO_CALL_TYPE;
    protected onReceiveStream: (receivedStream: MediaStream, senderAddress: string, audio: boolean | null) => Promise<void>;
    private peerInstances;
    protected data: VideoCallData;
    setData: (fn: (data: VideoCallData) => VideoCallData) => void;
    constructor({ signer, chainId, pgpPrivateKey, env, setData, callType, onReceiveStream, }: {
        signer: SignerType;
        chainId: number;
        pgpPrivateKey: string;
        setData: (fn: (data: VideoCallData) => VideoCallData) => void;
        env?: ENV;
        callType?: VIDEO_CALL_TYPE;
        onReceiveStream?: (receivedStream: MediaStream, senderAddress: string, audio: boolean | null) => Promise<void>;
    });
    create(options: VideoCreateInputOptions): Promise<void>;
    request(options: VideoRequestInputOptions): Promise<void>;
    acceptRequest(options: VideoAcceptRequestInputOptions): Promise<void>;
    connect(options: VideoConnectInputOptions): void;
    disconnect(options?: VideoDisconnectOptions): void;
    enableVideo(options: EnableVideoInputOptions): void;
    enableAudio(options: EnableAudioInputOptions): void;
    isInitiator(): boolean;
}
