import { EventEmitter } from 'ee-ts';
import { Log } from '../log';
export interface SenderEvents {
    close(s: SenderSession): void;
    stream(s: RTCSessionDescription): void;
    error(s: Error): void;
}
interface FromUser {
    id: number;
    sockId: string;
    sessionId: string;
}
export declare class SenderSession extends EventEmitter<SenderEvents> {
    id: string;
    pc: RTCPeerConnection;
    stream: MediaStream | null;
    peerSdp: string;
    closeReason: string | null;
    from: FromUser;
    log: Log;
    constructor(peerSdp: string, from: FromUser, conf: RTCConfiguration, log: Log);
    close(): void;
    start(stream: MediaStream): Promise<void>;
    onTrackStop(t: MediaStreamTrack): void;
    iceConnectionState(e: Event): void;
    iceCandidate(e: RTCPeerConnectionIceEvent): Promise<void>;
}
export {};
//# sourceMappingURL=sender.d.ts.map