import Call from './call'; import CallError from "./callError"; declare type voiceStatus = "READY" | "OFFLINE" | "BUSY"; declare type registrationEvent = "ready" | "offline"; declare type inviteEvent = "incoming" | "cancel"; declare type callEventWithoutError = "connect" | "reconnect" | "ringing"; declare type callEventWithError = "connectFailure" | "reconnecting" | "disconnect"; declare type callEvent = callEventWithoutError | callEventWithError; declare type voiceEvent = registrationEvent | inviteEvent | callEvent; 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; private _availableEvents; constructor(); get version(): string; get nativeVersion(): string | undefined; get status(): voiceStatus; setIdentity(identity: String): void; setToken(token: String): void; get availableEvents(): Array; connect: (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; removeAllListeners: () => void; 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; requestCameraPermission: () => Promise; } declare const _default: TwilioVoice; export default _default;