///
import { EventEmitter } from 'events';
import { PartyStatusCode, ReplyWithTextParams, Session as TelephonySession } from 'ringcentral-call-control/lib/Session';
import { WebPhoneSession } from 'ringcentral-web-phone/lib/session';
export declare enum events {
DISCONNECTED = "disconnected",
STATUS = "status",
RECORDINGS = "recordings",
MUTED = "muted",
WEBPHONE_SESSION_CONNECTED = "webphoneSessionConnected"
}
export declare enum directions {
OUTBOUND = "Outbound",
INBOUND = "Inbound"
}
export declare class Session extends EventEmitter {
private _webphoneSession;
private _telephonySession;
private _telephonySessionId;
private _activeCallId;
private _webphoneSessionConnected;
private _status;
private _sessionId;
private _startTime;
constructor({ webphoneSession, telephonySession, }: {
webphoneSession?: WebPhoneSession;
telephonySession?: TelephonySession;
});
_onNewWebPhoneSession(): void;
_onWebphoneSessionAccepted: (incomingResponse: any) => void;
_onWebphoneSessionProgress: (incomingResponse: any) => void;
_onWebphoneSessionTerminated: () => void;
_cleanWebPhoneSession(): void;
_onNewTelephonySession(): void;
_cleanTelephonySession(): void;
_onTelephonyStatusChange: ({ party }: {
party: any;
}) => void;
_onTelephonyRecordingsEvent: ({ party }: {
party: any;
}) => void;
_onTelephonyMutedEvent: ({ party }: {
party: any;
}) => void;
_setIdsFromWebPhoneSessionHeaders(headers: any): void;
setTelephonySession(telephonySession: any): void;
setWebphoneSession(webphoneSession: any): void;
dispose(): void;
get webphoneSession(): WebPhoneSession;
get webphoneSessionConnected(): boolean;
get telephonySession(): TelephonySession;
get telephonySessionId(): string;
get sessionId(): string;
get id(): string;
get activeCallId(): string;
get status(): PartyStatusCode;
get direction(): any;
get party(): any;
get otherParties(): any;
get recordings(): any;
get from(): any;
get to(): any;
get data(): any;
get startTime(): number;
hangup(): WebPhoneSession | Promise;
hold(): void | Promise;
unhold(): void | Promise;
toVoicemail(): Promise | Promise;
reject({ deviceId }?: {
deviceId?: string;
}): WebPhoneSession | Promise;
answer({ deviceId }?: {
deviceId?: string;
}): WebPhoneSession | Promise;
replyWithMessage(params: ReplyWithTextParams): Promise;
forward(forwardNumber: string, acceptOptions?: any, transferOptions?: any): Promise;
transfer(transferNumber: string, transferOptions?: any): Promise;
warmTransfer(newSession: Session): Promise;
park(): Promise;
flip({ callFlipId }: {
callFlipId: string;
}): Promise;
mute(): Promise;
unmute(): Promise;
startRecord({ recordingId }?: {
recordingId?: string;
}): Promise;
stopRecord({ recordingId }?: {
recordingId?: string;
}): Promise;
}