import { BaseStateMachine } from '../../tools/BaseStateMachine'; import { createAutoConnectorMachine } from './createAutoConnectorMachine'; import { EState, TAutoConnectorEvent, TContext, TContextMap } from './types'; import { TParametersAutoConnect } from '../types'; type TMachine = ReturnType; export type TSnapshot = { value: EState.IDLE; context: TContextMap[EState.IDLE]; } | { value: EState.DISCONNECTING; context: TContextMap[EState.DISCONNECTING]; } | { value: EState.ATTEMPTING_GATE; context: TContextMap[EState.ATTEMPTING_GATE]; } | { value: EState.ATTEMPTING_CONNECT; context: TContextMap[EState.ATTEMPTING_CONNECT]; } | { value: EState.WAITING_BEFORE_RETRY; context: TContextMap[EState.WAITING_BEFORE_RETRY]; } | { value: EState.CONNECTED_MONITORING; context: TContextMap[EState.CONNECTED_MONITORING]; } | { value: EState.TELEPHONY_CHECKING; context: TContextMap[EState.TELEPHONY_CHECKING]; } | { value: EState.ERROR_TERMINAL; context: TContextMap[EState.ERROR_TERMINAL]; }; export declare class AutoConnectorStateMachine extends BaseStateMachine { constructor(machine: TMachine); send(event: TAutoConnectorEvent): void; toStop(): void; toRestart(parameters: TParametersAutoConnect): void; toTelephonyResult(outcome: 'stillConnected'): void; toTelephonyResultStillConnected(): void; isInIdleState(): this is AutoConnectorStateMachine & { state: EState.IDLE; context: TContextMap[EState.IDLE]; }; isInConnectedMonitoringState(): this is AutoConnectorStateMachine & { state: EState.CONNECTED_MONITORING; context: TContextMap[EState.CONNECTED_MONITORING]; }; isInWaitingBeforeRetryState(): this is AutoConnectorStateMachine & { state: EState.WAITING_BEFORE_RETRY; context: TContextMap[EState.WAITING_BEFORE_RETRY]; }; } export declare const createAutoConnectorStateMachine: (deps: Parameters[0]) => AutoConnectorStateMachine; export type { AutoConnectorStateMachine as IAutoConnectorStateMachine };