import { type PreparedOutputRoot } from "./selected-output-paths.js"; export declare const SANDBOX_RECEIPTS_ARTIFACT = "sandbox-receipts.ndjson"; export interface SandboxReceipt { at: string; /** The lane/role/subject label the sandbox belongs to (public-safe token). */ laneId: string; sandboxId: string; /** The create-time sandbox TTL (ms), when known — how long the server-side backstop runs. */ timeoutMs?: number; } /** * Append one receipt. Best-effort BY DESIGN: the receipt exists to protect the run, so a failed * receipt write must never fail the lane — the only cost of a miss is that `reclaim` cannot see * this id and the TTL backstop covers it instead. Containment is the same prepare step every * artifact write uses; append (not atomic-replace) keeps racing lanes' receipts intact. */ export declare function appendSandboxReceipt(root: PreparedOutputRoot, receipt: SandboxReceipt): Promise; /** Parse a receipts file leniently: a torn final line (crash mid-append) drops, valid lines keep. */ export declare function parseSandboxReceipts(text: string): SandboxReceipt[];