import { PathEventEmitter, Unsubscribe } from '@ztimson/utils';
import { Momentum } from './momentum';
/** WebRTC peer */
export type WebRTCPeer = {
    /** Peer connection UID */
    uid: string;
    /** Peer username */
    username: string;
    /** Remote connection to stream */
    connection: RTCPeerConnection;
    /** Remote media stream */
    stream?: MediaStream;
};
/** WebRTC session */
export type WebRTCSession = {
    /** Is the connection active? */
    open: boolean;
    /** Room ID */
    id: string;
    /** Connection UID */
    uid: string;
    /** Local media stream */
    stream: MediaStream;
    /** Connected peers sorted by UID */
    peers: {
        [key: string]: WebRTCPeer;
    };
    /** Disconnection session */
    disconnect: Unsubscribe;
};
export declare class WebRtc extends PathEventEmitter {
    private momentum;
    private get ice();
    constructor(momentum: Momentum);
    private answer;
    private offer;
    connect(id?: string, audio?: boolean, video?: boolean): Promise<WebRTCSession>;
}
//# sourceMappingURL=webRtc.d.ts.map