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;
    OnRefreshLocalWebCam: (() => void) | undefined;
    OnNewAudioStream: ((stream: RlAudioStream) => void) | undefined;
    OnNewVideoStream: ((stream: RlVideoStream) => void) | undefined;
    OnVideoStreamClosed: ((stream: RlVideoStream) => void) | undefined;
    OnAudioStreamClosed: ((stream: RlAudioStream) => void) | undefined;
    OnBroadcastRecevied: ((clientId: string, data: any) => void) | undefined;
    OnConnectionStateChanged: ((state: RTCPeerConnectionState) => void) | undefined;
    OnModuleData: ((issue: string, data: any) => void) | undefined;
    get LocalMicrophoneStream(): RlAudioStream | undefined;
    get LocalWebCamStream(): RlVideoStream | undefined;
    get LocalScreenShareStream(): RlVideoStream | undefined;
    constructor(signaling: Signaling);
    get MyId(): string;
    get ConnectionState(): RTCPeerConnectionState;
    get Clients(): ReadonlyArray<Client>;
    StartScreenShareStream(): Promise<void>;
    StopScreenShareStream(): Promise<void>;
    StartMicrophoneStream(): Promise<void>;
    StopMicrophoneStream(): Promise<void>;
    StartWebcamStream(): Promise<void>;
    StopWebcamStream(): Promise<void>;
    BroadcastMessage(data: any): void;
    EnableCaption(state: "caption" | "translate", srcLang: string, dst: string): void;
    DisableCaption(): void;
    EnableLiveTranslation(srcLang: string, dstLang: string): void;
    DisableLiveTranslation(): 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