/// import { EventEmitter } from 'events'; import { SDK as RingCentralSDK } from '@ringcentral/sdk'; import { Session, SessionData } from './Session'; export interface SessionsMap { [key: string]: any; } export interface SessionMessage { event: string; body: any; } export interface Device { id: string; linePooling: string; name: string; uri: string; type: 'SoftPhone' | 'OtherPhone' | 'HardPhone'; serial: string; computerName: string; boxBillingId: Number; useAsCommonPhone: boolean; inCompanyNet: boolean; model: any; extension: any; emergencyServiceAddress: any; phoneLines: any[]; shipping: any; sku: any; status: 'Initial' | 'Offline' | 'Online'; site: any; lastLocationReportTime: string; } export interface EventSequenceData { sequence: number; updatedAt: number; telephonySessionId: string; } export interface EventSequenceMap { [key: string]: EventSequenceData; } export interface Account { id: string; } export interface Extension { id: string; uri: string; account: Account; contact: any; departments: any[]; extensionNumber: string; name: string; partnerId: string; permissions: any[]; profileImage: any; references: any[]; roles: any[]; regionalSettings: any; serviceFeatures: any[]; setupWizardState: string; status: string; statusInfo: string; type: string; callQueueExtensionInfo: any; hidden: boolean; } export interface CallOutToParams { phoneNumber?: string; extensionNumber?: string; } export declare class RingCentralCallControl extends EventEmitter { private _sdk; private _sessionsMap; private _devices; private _currentExtension; private _accountLevel; private _ready; private _initializePromise; private _preloadSessions; private _preloadDevices; private _userAgent; private _eventSequenceMap; constructor({ sdk, accountLevel, preloadSessions, preloadDevices, extensionInfo, userAgent, }: { sdk: RingCentralSDK; accountLevel?: boolean; preloadSessions?: boolean; preloadDevices?: boolean; extensionInfo?: Extension; userAgent?: string; }); initialize(): Promise; private _initialize; onNotificationEvent(message: SessionMessage): void; private checkSequence; private cleanExpiredSequenceData; get sessions(): Session[]; get sessionsMap(): SessionsMap; private loadCurrentExtension; private preloadSessions; private loadActiveCalls; loadSessions(activeCalls: any): Promise; restoreSessions(sessionDatas: SessionData[]): void; private loadDevices; private onSessionStatusUpdated; refreshDevices(): Promise; createCall(deviceId: string, to: CallOutToParams): Promise; createConference(): Promise; get accountId(): string; get extensionId(): string; get devices(): Device[]; get ready(): boolean; get requestOptions(): { userAgent: string; }; get eventSequenceMap(): EventSequenceMap; }