export type SessionStoreEntry = { type: string; uuid?: string; timestamp?: string; [key: string]: unknown; }; export type SessionKey = { projectKey: string; sessionId: string; /** Opaque transcript suffix such as `subagents/agent-` (without `.jsonl`). */ subpath?: string; }; export type SessionStoreFlush = 'batched' | 'eager'; export interface SessionStore { append(key: SessionKey, entries: SessionStoreEntry[]): Promise; load(key: SessionKey): Promise; listSessions?(projectKey: string): Promise>; delete?(key: SessionKey): Promise; listSubkeys?(key: Omit): Promise; } /** Reference store for tests, examples, and process-local integrations. */ export declare class InMemorySessionStore implements SessionStore { private readonly entries; private readonly keys; private readonly modifiedAt; private lastModifiedAt; append(key: SessionKey, entries: SessionStoreEntry[]): Promise; load(key: SessionKey): Promise; listSessions(projectKey: string): Promise>; delete(key: SessionKey): Promise; listSubkeys(key: Omit): Promise; /** Return all entries for a key. Intended for tests and local development. */ getEntries(key: SessionKey): SessionStoreEntry[]; /** Number of stored main transcripts. */ get size(): number; /** Remove all stored entries. */ clear(): void; private deleteSerialized; }