export interface OpenCodeToolResultKey { contextId: string; sessionId: string; callId: string; } export interface OpenCodeToolResultEntry extends OpenCodeToolResultKey { tool: string; args?: unknown; title?: string; output?: string; metadata?: unknown; attachments?: unknown; createdAt: number; updatedAt: number; incomplete: boolean; } export interface OpenCodeToolResultLedgerOptions { ttlMs?: number; maxEntries?: number; maxBytes?: number; maxEntryBytes?: number; now?: () => number; } export declare class OpenCodeToolResultLedger { private readonly entries; private readonly ttlMs; private readonly maxEntries; private readonly maxBytes; private readonly maxEntryBytes; private readonly now; private totalBytes; constructor(options?: OpenCodeToolResultLedgerOptions); recordBefore(key: OpenCodeToolResultKey, input: { tool: string; args?: unknown; }): void; recordAfter(key: OpenCodeToolResultKey, input: { tool: string; args?: unknown; title?: string; output?: string; metadata?: unknown; attachments?: unknown; }): void; peek(key: OpenCodeToolResultKey): OpenCodeToolResultEntry | undefined; consume(key: OpenCodeToolResultKey): OpenCodeToolResultEntry | undefined; deleteSession(contextId: string, sessionId: string): void; clear(): void; stats(): { entries: number; bytes: number; }; private store; private getStored; private touch; private sweep; private evict; }