import { EventEmitterProxy } from 'events-constructor'; import { ConnectionStateMachine } from './ConnectionStateMachine'; import { default as SipOperations, TParametersCheckTelephony } from './SipOperations'; import { RegisteredEvent, UA, UnRegisteredEvent, WebSocketInterface } from '@krivega/jssip'; import { TGetUri } from '../CallManager'; import { TJsSIP } from '../types'; import { TConnect } from './ConnectionFlow'; import { TEventMap } from './events'; import { TConnectionConfig, TParametersConnection } from './types'; type TConnectParameters = (() => Promise) | TParametersConnection; type TConnectOptions = Parameters[1] & { hasReadyForConnection?: () => boolean; }; export default class ConnectionManager extends EventEmitterProxy { readonly stateMachine: ConnectionStateMachine; ua?: UA; socket?: WebSocketInterface; private readonly uaFactory; private readonly registrationManager; private readonly connectionFlow; private readonly sipOperations; constructor({ JsSIP }: { JsSIP: TJsSIP; }, { numberOfConnectionAttempts, }?: { numberOfConnectionAttempts?: number; }); get requested(): boolean; get isPendingConnect(): boolean; get isPendingInitUa(): boolean; get isIdle(): boolean; get isDisconnected(): boolean; get isDisconnecting(): boolean; get connectionState(): import('./ConnectionStateMachine').EConnectionStatus; get isRegistered(): boolean; get isRegisterConfig(): boolean; connect: (parameters: TConnectParameters, options?: TConnectOptions) => Promise; disconnect: () => Promise; register(): Promise; unregister(): Promise; readonly tryRegister: () => Promise; sendOptions: (target: Parameters[0], body?: Parameters[1], extraHeaders?: Parameters[2]) => Promise; ping: (body?: Parameters[0], extraHeaders?: Parameters[1]) => Promise; checkTelephony: (parameters: TParametersCheckTelephony) => Promise; isConfigured(): boolean; getConnectionConfiguration: () => TConnectionConfig | undefined; destroy(): void; getUri: TGetUri; getUser(): string | undefined; readonly getUaProtected: () => UA; private readonly getUa; private readonly connectWithProcessError; } export {};