import { Client } from "./internal/model/client_model";
import { Signaling } from "./internal/signaling/interface";
import { RlAudioStream } from "./media/RlAudioStream";
import { RlVideoStream } from "./media/RlVideoStream";
declare class RahatLineConnection {
    private _myId;
    private _signaling;
    private _peerConnection;
    private _connectionState;
    private readonly _mediaStreams;
    private readonly _connectToPeerPromise;
    ClientLeave: ((client: Client) => void) | undefined;
    NewClientConnected: ((client: Client) => void) | undefined;
    OnNewAudioStream: ((stream: RlAudioStream) => void) | undefined;
    OnNewVideoStream: ((stream: RlVideoStream) => void) | undefined;
    OnVideoStreamClosed: ((stream: RlVideoStream) => void) | undefined;
    OnAudioStreamClosed: ((stream: RlAudioStream) => void) | undefined;
    OnConnectionStateChanged: ((state: RTCPeerConnectionState) => void) | undefined;
    constructor(signaling: Signaling);
    get MyId(): string;
    get ConnectionState(): RTCPeerConnectionState;
    get Clients(): ReadonlyArray<Client>;
    StartMicrophoneStream(): Promise<void>;
    StopMicrophoneStream(): Promise<void>;
    StartWebcamStream(): Promise<void>;
    StopWebcamStream(): Promise<void>;
    StartCanvasStream(canvas: HTMLCanvasElement, frameRate?: number): Promise<void>;
    StopCanvasStream(): Promise<void>;
    Connect(): Promise<string>;
    Close(): void;
    private _StartLocalNegotiation;
    private _OnIceCandidate_PCEvent;
    private _OnNewTrack_PCEvent;
    private _OnRemoveTrack_PCEvent;
    private _OnConnectionStateChanged_PCEvent;
    private _OnServerOffer_SignalingEvent;
    private _OnServerAnswer_SignalingEvent;
    private _BootstrapSignaling;
    private _BootstrapPeerConnection;
}
export declare function InitializeConnection(address: string, token: string, options: Partial<InitializeOptions>): RahatLineConnection;
type InitializeOptions = {
    port: number;
    path: string;
    protocol: 'ws' | 'wss';
};
export {};
//# sourceMappingURL=index.d.ts.map