export interface SessionTurnManagerOptions { open: () => Promise; close?: (state: TState | null) => Promise | void; getInitial?: () => Promise; maxTurns?: number; recovery?: { turnsOnActiveSession?: unknown; } | null; getSessionId?: (state: TState) => string | null | undefined; onRefresh?: (event: { turnLimit: number; previous: TState | null; }) => void; onRecover?: (event: { previous: TState | null; }) => void; onCloseError?: (error: unknown, state: TState | null) => void; } export interface SessionTurnManager { getForTurn(): Promise; recoverForRetry(): Promise; refreshNow(): Promise; getActive(): TState | null; getStarted(): TState[]; getRecoverySnapshot(): { sessionId: string; turnsOnActiveSession: number; } | null; } export declare function createSessionTurnManager(options: SessionTurnManagerOptions): SessionTurnManager; export declare function normalizeSessionTurnLimit(value: unknown): number;