import { ConnectAndCallSessionStateMachine } from './ConnectAndCallSessionStateMachine'; import { EConnectAndCallSessionPhase, IConnectAndCallSession, TConnectAndCallSessionCloseReason, TConnectAndCallSessionParameters, TConnectAndCallSessionStartResult, TConnectAndCallSessionTeardown } from './types'; import { AutoConnectorManager } from '../AutoConnectorManager'; import { CallReconnectManager } from '../CallReconnectManager'; import { ConnectionManager } from '../ConnectionManager'; type TDependencies = { autoConnectorManager: AutoConnectorManager; callReconnectManager: CallReconnectManager; connectionManager: Pick; teardown: TConnectAndCallSessionTeardown; }; declare class ConnectAndCallSessionManager implements IConnectAndCallSession { readonly stateMachine: ConnectAndCallSessionStateMachine; private readonly autoConnectorManager; private readonly callReconnectManager; private readonly connectionManager; private readonly teardown; private readonly unsubscribes; private finalizePromise; private finalizationReason; private isCallStartPending; private readonly closedPromise; private resolveClosed; constructor({ autoConnectorManager, callReconnectManager, connectionManager, teardown, }: TDependencies); get phase(): EConnectAndCallSessionPhase; start: ({ connection, startCall, }: TConnectAndCallSessionParameters) => Promise; hangUp: () => Promise; disconnect: () => Promise; waitUntilClosed: () => Promise; private subscribeToLifecycle; private finalizeInBackground; private hasFinalizationStarted; private createInterruptedStartResult; private finalize; } export default ConnectAndCallSessionManager;