import Core from '../../core/Core';
import CoreStorage from '../../core/storage/CoreStorage';
import SessionsRequest from '../SessionsRequest';
import ExpirationManager from '../../common/ExpirationManager';
/**
 * Handles expired session recovery and cleanup
 */
export default class ExpirationRecovery {
    private core;
    private coreStorage;
    private expirationManager;
    constructor(core: Core, coreStorage: CoreStorage, expirationManager: ExpirationManager);
    /**
     * Check if session has expired
     */
    hasExpired(): boolean;
    /**
     * Recover from expired session
     * Returns a new START request with cleaned params
     * @param lastStartRequest - The last START request (if any)
     * @returns New START request for recovery
     */
    recover(lastStartRequest: SessionsRequest | null): SessionsRequest;
    /**
     * Close session and cleanup storage
     */
    closeSession(): void;
    /**
     * Close the expired session without queueing a recovery START request.
     * Used when sessionRecovery option is 'never' — the host app is expected
     * to start a fresh session itself.
     */
    expireWithoutRecovery(): void;
    /**
     * Trigger SESSION_EXPIRE event after configured delay
     */
    private triggerExpireEvent;
    /**
     * Get expiration manager (for external use)
     */
    getExpirationManager(): ExpirationManager;
}
