import type { ChatMessage } from "../../types.js"; import type { PersistedContextUsage } from "../../store/history.js"; import type { PersistedRouteUsage } from "./session-usage-ledger.js"; import { type ContextSnapshotV1 } from "../../llm/context-snapshot.js"; import type { PersistencePort, SaveSessionOptions } from "../ports/persistence-port.js"; /** * A session is worth writing (and therefore worth resuming) once it holds a * real user turn or a compaction memory. Shared by every persistence trigger * so `persistNow`, autosave, and the exit epilogue never disagree. */ export declare function hasPersistableHistory(messages: readonly ChatMessage[]): boolean; /** Ordered whole-session snapshots shared by every persistence trigger. */ export declare class SessionPersistenceQueue { private readonly port; private writerGeneration; private revision; private chain; constructor(port: PersistencePort); rebind(_loadedRevision?: number | undefined): void; newSession(): void; save(messages: readonly ChatMessage[], options: Omit): Promise; } export declare function mintSessionId(): string; export declare function pathBackedMessages(messages: readonly ChatMessage[]): ChatMessage[]; export declare function persistedContextUsage(snapshot: ContextSnapshotV1 | undefined, routeUsage?: readonly PersistedRouteUsage[] | undefined): PersistedContextUsage | undefined;