import Call from './call'; import CallError from "./callError"; declare type voiceStatus = "READY" | "OFFLINE" | "BUSY"; declare type callEventHandler = (call: Call) => void; declare type callEventWithErrorHandler = (call: Call, err?: CallError) => void; declare type removeHandlerFn = () => void; declare class TwilioVoice { private _currentCall; private _nativeAppEventEmitter; private _internalEventHandlers; private _eventHandlers; private _isSetup; private _nativeVersion; constructor(); readonly version: string; readonly nativeVersion: string | undefined; readonly status: voiceStatus; connect: (accessToken: string, params?: {}) => Promise; destroy: () => void; on(event: "connect", handler: callEventHandler): removeHandlerFn; on(event: "reconnect", handler: callEventHandler): removeHandlerFn; on(event: "ringing", handler: callEventHandler): removeHandlerFn; on(event: "connectFailure", handler: callEventWithErrorHandler): removeHandlerFn; on(event: "reconnecting", handler: callEventWithErrorHandler): removeHandlerFn; on(event: "disconnect", handler: callEventWithErrorHandler): removeHandlerFn; private removeListener; private getNativeVersion; private setup; private addInternalCallEventHandlers; private removeInternalCallEventHandlers; private handleEvent; private createOrUpdateCall; private createCallError; private parseNativeCallObject; private onConnect; private onDisconnect; private onConnectFailure; private onReconnect; private onReconnecting; private onRinging; private disconnectAll; } declare const _default: TwilioVoice; export default _default;