import Call from './Call';
import { defaultVertoCallbacks } from '../store';
import VertoParams from '../models/VertoParams';
import { VertoOptions } from '../models/VertoOptions';
import EventSubscription from '../models/EventSubscription';
import ConferenceCallback from '../models/ConferenceCallback';
import EventParams from '../models/EventParams';
import VertoRTCMediaHandlers from '../models/VertoRTC/VertoRTCMediaHandlers';
import { MediaStreamTrack } from 'react-native-webrtc';
export default class VertinhoClient {
    private params;
    callbacks: defaultVertoCallbacks;
    private conferenceCallbacks;
    private webSocket;
    private webSocketCallbacks;
    private retryingTimer;
    private currentWebSocketRequestId;
    options: VertoOptions;
    calls: Map<string, Call>;
    private conference?;
    private sessid;
    private webSocketSubscriptions;
    private authing;
    constructor(params: VertoParams, vertoCallbacks: defaultVertoCallbacks, conferenceCallbacks?: ConferenceCallback);
    private connect;
    private connectSocket;
    private socketReady;
    private purge;
    publish(method: any, params?: {}, onSuccess?: (x: any) => any, onError?: (x: any) => any): void;
    private handleJSONRPCMessage;
    private onWebSocketMessage;
    private handleMessage;
    private handleChannelPrivateDataMessage;
    private handleMessageForClient;
    private handleMessageForCall;
    private processReply;
    private setDroppedSubscription;
    private setReadySubscription;
    broadcastMethod(method: string, params: any): void;
    broadcast(eventChannel: any, data: any): void;
    subscribe(eventChannel: any, params: EventParams): EventSubscription;
    unsubscribe(eventChannel: any): void;
    switchCamera(callId: string, localVideoTrack: MediaStreamTrack): void;
    makeVideoCall({ callerName, ...params }: {
        [x: string]: any;
        callerName: any;
    }, mediaHandlers?: VertoRTCMediaHandlers): Call;
    private makeCall;
    destroy(): void;
    hangup(callId: string): void;
}
