import { SessionReadRepo, type SessionListOptions } from './session-read-repo.js'; import type { StoredSession, StoredSessionHostMetrics } from '@opensip-cli/contracts'; import type { DataStore } from '@opensip-cli/datastore'; /** * Persistence layer for tool-run sessions. Stores generic session columns plus * one opaque per-tool `payload` blob; holds ZERO tool vocabulary — it never * inspects/validates the payload shape (the producing tool owns that). (Audit * 2026-05-29, session split.) */ export declare class SessionRepo { private readonly read; private readonly write; private readonly maintenance; constructor(datastore: DataStore); save(session: StoredSession): void; list(opts?: SessionListOptions): readonly StoredSession[]; get(id: string): StoredSession | null; latest(opts?: Parameters[0]): StoredSession | null; count(): number; pruneToCount(keep: number): number; pruneToCountBatch(keep: number, batchSize?: number): number; purge(before: Date): number; purgeBatch(before: Date, batchSize?: number): number; clearAll(): number; clearForTool(toolId: string): number; upsertHostMetrics(sessionId: string, metrics: StoredSessionHostMetrics): void; } export { type SessionListOptions } from './session-read-repo.js'; export { MAX_SESSION_MAINTENANCE_BATCH_SIZE } from './session-maintenance-repo.js'; //# sourceMappingURL=session-repo.d.ts.map