import { CallManager } from '../CallManager'; import { ConnectionManager } from '../ConnectionManager'; import { ConnectionQueueManager } from '../ConnectionQueueManager'; import { TEventMap } from './events'; import { IAutoConnectorOptions, TParametersAutoConnect, TReconnectReason } from './types'; type TStopReason = 'halted' | 'cancelled' | 'failed' | undefined; type TEmitters = { emitStatusChange: ({ isInProgress }: { isInProgress: boolean; }) => void; emitBeforeAttempt: () => void; emitLimitReachedAttempts: () => void; emitSuccess: () => void; emitStopAttemptsByError: (error: unknown) => void; emitCancelledAttempts: (error: unknown) => void; emitFailedAllAttempts: (error: Error) => void; emitTelephonyCheckFailure: (payload: TEventMap['telephony-check-failure']) => void; emitTelephonyCheckEscalated: (payload: TEventMap['telephony-check-escalated']) => void; }; type TReconnectActions = { requestReconnect: (parameters: TParametersAutoConnect, reason: TReconnectReason) => void; notifyTelephonyStillConnected: () => void; }; type TAutoConnectorRuntimeParams = { connectionManager: ConnectionManager; connectionQueueManager: ConnectionQueueManager; callManager: CallManager; emitters: TEmitters; reconnectActions: TReconnectActions; options?: IAutoConnectorOptions; }; export declare class AutoConnectorRuntime { private readonly connectionManager; private readonly connectionQueueManager; private readonly checkTelephonyRequester; private readonly pingServerRequester; private readonly registrationFailedOutOfCallSubscriber; private readonly attemptsState; private readonly delayBetweenAttempts; private readonly telephonyFailPolicy; private readonly emitters; private readonly reconnectActions; constructor(params: TAutoConnectorRuntimeParams); stopConnectionFlow(): Promise; connect(parameters: TParametersAutoConnect): Promise; delayBeforeRetry(): Promise; cancelPendingRetry(): void; hasLimitReached(): boolean; shouldDisconnectBeforeAttempt(): boolean; beforeAttempt(): void; beforeConnectAttempt(): void; onLimitReached(parameters: TParametersAutoConnect): void; onConnectSucceeded(parameters: TParametersAutoConnect): void; emitTerminalOutcome({ stopReason, lastError, }: { stopReason: TStopReason; lastError: unknown; }): void; onTelephonyStillConnected(): void; stopConnectTriggers(): void; private stopAttempts; private startCheckTelephony; private subscribeToConnectTriggers; private isConnectionUnavailable; } export {};