export interface InteractiveSessionRecord { provider: string; sessionId: string; inputs: string[]; response: string; modified: string; messageCount: number; } type CheckSession = (provider: string, sessionId: string) => Promise; export declare function getRecordsPath(cwd: string): string; type Turn = { cwd: string; provider: string; sessionId: string; input: string; response: string; }; type SessionKey = Pick; type Input = SessionKey & { input: string; }; type Response = SessionKey & { inputRevision: number; response: string; }; export declare function recordTurn(args: Turn): void; export declare function listRecords(cwd: string, provider: string): InteractiveSessionRecord[]; export declare function cleanRecords(cwd: string, exists: CheckSession): Promise; /** Owns records for the lifetime of a single interactive run. */ export declare class InteractiveSessionRecords { private readonly cwd; private pending; private snapshot; private readFailed; private discarded; constructor(cwd: string); clean(exists: CheckSession): Promise; list(provider: string): InteractiveSessionRecord[]; private update; recordInput(args: Input): number; recordResponse(args: Response): void; discard(args: SessionKey): void; } export {}; //# sourceMappingURL=interactiveSessionRecords.d.ts.map