import type { ToolResultSlice, ToolResultStore } from "../../core/tool-result-store.js"; /** * design/80 §2.5 — file {@link ToolResultStore}: write-once-idempotent, ONE file per ref. * * `ref = tr__` (engine-minted, already globally unique). `put` is an * `O_CREAT|O_EXCL` create (`"wx"`) → on `EEXIST` it SILENTLY no-ops (write-once-idempotent; never * re-writes — a re-write risks a non-identical preview and breaks the prompt cache, §2.5 / the in-memory * store's `if (!map.has(ref))`). Content is fsync'd before return. `get` slices the file by `{offset, * limit}` over CHARS to match `ToolResultSlice.totalChars` semantics; an unknown ref → `undefined` (the * model is told it's gone — degrades, never crashes). `withToolResultOffload` joins text with `\n` and * stores the joined string verbatim, so the char-offset slice here is exactly the in-memory store's slice. */ export declare class FileToolResultStore implements ToolResultStore { private readonly dir; constructor(root: string); private pathFor; put(ref: string, content: string): void; get(ref: string, opts?: { offset?: number; limit?: number; }): ToolResultSlice | undefined; } //# sourceMappingURL=tool-result-store.d.ts.map