import 'webrtc-adapter';
import { RTCInterface, Locale } from '../types/interfaces';
import WS from './ws';
declare class RTC implements Omit<RTCInterface, 'peerConnectionsServer' | 'createRTCServer' | 'handleOfferMessage' | 'addTracksServer'> {
    peerConnections: RTCInterface['peerConnections'];
    readonly delimiter = "_";
    roomLength: number;
    connId: string;
    muteds: (string | number)[];
    localTrackSettings: MediaTrackSettings | null;
    lostStreamHandler: (args: {
        target: number | string;
        roomId: string | number;
        connId: string;
        eventName: string;
    }) => void;
    private ws;
    localStream: MediaStream | null;
    roomId: number | null;
    onAddTrack: Record<string, (target: number | string, stream: MediaStream) => void>;
    constructor({ ws }: {
        ws: WS;
    });
    setLocalStream(stream: MediaStream | null): void;
    createPeerConnection({ roomId, userId, target, connId, onTrack, iceServers, eventName, }: {
        roomId: string | number;
        userId: string | number;
        target: string | number;
        connId: string;
        onTrack: (args: {
            addedUserId: string | number;
            stream: MediaStream;
            connId: string;
        }) => void;
        iceServers: RTCConfiguration['iceServers'];
        eventName: 'first' | 'check' | 'back';
    }): number;
    getPeerKeys(): string[];
    createRTC: RTCInterface['createRTC'];
    getPeerId(roomId: number | string, target: number | string, connId: string): string;
    sendNeedReconnect(userId: string | number): void;
    checkPeerConnection({ target }: {
        target: string | number;
    }): string | undefined;
    handleIceCandidate: RTCInterface['handleIceCandidate'];
    private checkMediaDevice;
    getTracks({ locale }: {
        locale: Locale.Client;
    }): Promise<null | MediaStream>;
    addTracks: RTCInterface['addTracks'];
    handleCandidateMessage: RTCInterface['handleCandidateMessage'];
    handleVideoAnswerMsg: RTCInterface['handleVideoAnswerMsg'];
    closeVideoCall: RTCInterface['closeVideoCall'];
    closeByPeer: (peerId: string, eventName: string) => void;
    onClosedCall: RTCInterface['onClosedCall'];
    closeAllConnections(withSelfStream?: boolean): void;
    parsePeerId({ target }: {
        target: string | number;
    }): string[];
}
export default RTC;
