import type { ResolvedConfig } from "../types.js"; /** * Empty the judge's transcript. * * Truncated rather than deleted, because a run in flight holds this path and * goes on appending to it; unlinking underneath a writer would send the rest of * the run's narration to a file nothing reads. Emptying it leaves that writer * correct and the reader with nothing to show, which is the ask. * * `forgetNarration` is the other half. The cursor is what makes the rail * incremental, and a cursor pointing past the end of a file that just became * empty would keep every open page showing what was cleared until the next run * happened to shorten the file again. */ export declare function clearNarration(resolved: ResolvedConfig): Promise; /** Whether the reset happened, and what it took with it. */ export interface ResetOutcome { ok: boolean; /** Why it was refused, when it was. */ why?: string; /** The entries removed from `.lookout/`, for the answer the page reports. */ removed: string[]; } /** * Reset the project: delete the record, and forget it here too. * * Refused while a run is in flight. A check writes screenshots, events and * narration continuously, so deleting the directory underneath one would race * the writer and leave a half-rebuilt workspace that looks like a fresh capture * without being one. Stopping the run first is a decision the operator should * make deliberately, not one this hides inside a wipe. */ export declare function resetProject(resolved: ResolvedConfig): Promise;