export declare enum SessionStatus { ESTABLISHED = "ESTABLISHED", REGISTERED = "REGISTERED", DISCONNECTED = "DISCONNECTED", FAILED = "FAILED", INCOMING_CALL = "INCOMING_CALL", UNREGISTERED = "UNREGISTERED", AUTHENTICATION_FAIL = "AUTHENTICATION_FAIL" } export declare enum CallStatus { RING = "RING", ESTABLISHED = "ESTABLISHED", HOLD = "HOLD", FINISH = "FINISH", FAILED = "FAILED", PENDING = "PENDING", RING_MEDIA = "RING_MEDIA", BUSY = "BUSY", SESSION_PROGRESS = "SESSION_PROGRESS" } export interface SipOptions { login: String | Number; password?: String; authenticationName?: String | Number; domain: String; outboundProxy?: String; port?: Number; useProxy: boolean; registerRequired: boolean; } export interface Call { id(): string; status(): CallStatus; answer(options: { localVideoDisplay: HTMLElement | null; remoteVideoDisplay: HTMLElement | null; }): void; hangup(): void; sendDTMF(dtmf: string): void; hold(): void; holdForTransfer(): void; unhold(): void; transfer(target: string): void; getStats(callback: (statistics: any) => void): void; caller(): string; callee(): string; on(event: CallStatus, callback: (call: Call) => void): Call; call(): void; muteAudio(): void; unmuteAudio(): void; isAudioMuted(): boolean; } export interface Session { createCall(options: { callee: String; visibleName: String | Number; localVideoDisplay: HTMLElement; remoteVideoDisplay: HTMLElement; constraints: { audio: boolean; video: boolean; }; }): Call; disconnect(): void; on(event: SessionStatus, callback: (session: Session) => void): Session; } interface Params { credentials: { extension: Number; password: String; host: String; port: Number; ws: String; }; config?: { dom?: { localVideo: HTMLElement; remoteVideo: HTMLElement; }; }; } interface Callback { [key: string]: (e: any) => any; } declare class Phoner { private credentials; private microsipListener; currentCall: Call | null; private session; private holdedCall; private incomingCall; private localVideo; private remoteVideo; private sipOptions; private timerInterval; private start; private min; private activities; private callback; constructor(params: Params); on(event: keyof Callback, handler: (e: any) => any): void; activity(handler: (e: any, payload: any) => any): void; init(): void; connect(): void; disconnect(): void; cancel(): void; call(callee: string, hasVideo: boolean): void; changeVideoState(): void; sendMessage(message: { to: string; body: string; }): void; answer(): void; mute(): void; unmute(): void; hangup(): void; sendDTMF(dtmf: string): void; hold(): void; holdForTransfer(): void; unhold(): void; transfer(target: string): void; getStatistics(): void; hideFlashAccess(): void; connectionStatusListener(status: SessionStatus): void; registrationStatusListener(status: SessionStatus): void; onCallListener(call: Call): void; callStatusListener(call: Call): void; onTransferStatusListener(event: { status: any; incoming: any; }): void; onTransferEventListener(event: { status: any; incoming: any; }): void; parseMsn(fsService: any, mcn: string): void; recordingStatusListener(recordReport: { report: { mixedFilename: string; }; }): void; onDataEventListener(event: { data: any; }): void; dataStatusEventListener(event: { status: any; }): void; viewMessage(message: string): void; openVideoView(): void; startTimer(): string; isCurrentCall(call: Call): boolean; isRingSoundAllowed(): boolean; applyCalleeLetterCase(callee: string): string; } export default Phoner;