import type { RunReport } from './format.js'; import { type SuiteIndex } from './suite-index.js'; /** * The run report as a file — the one thing here that needs a disk. * * Its own module and its own entrypoint because the *format* is the contract and * the disk is an implementation of it. A run happening on a pinned machine in CI * and questions being asked on a laptop is exactly why this artifact exists; a * consumer who moves it some other way — an object store, a PR comment, a socket * — wants the shapes and not this. */ export declare function writeRunReport(path: string, report: RunReport): Promise; /** * Read a run report, refusing anything that is not one. * * The version check is not ceremony. These tools answer questions an agent then * edits code on, and a silently-misparsed report produces confident answers about * fields that were never there. * * `notObserved` gets the same treatment for a sharper reason: it is the field a * summary claims a clean run *from*, so a malformed entry that survived parsing * would be counted as neither a failure nor an exclusion and would silently stop * holding the run open. The cost is that a report from a future writer with a * third kind is refused outright rather than partly understood — which is the * intended trade, because partly understanding a coverage list is exactly the * failure this field exists to prevent. */ export declare function readRunReport(path: string): Promise; /** * Write a suite index, which is bytes rather than text. * * Beside the report writer because the disk is the same disk, and apart from it * because the two artifacts travel differently: a report is read once by whoever * asked about the run that produced it, and an index is read by every later run * that wants to know what the suite looked like before it. The transports that * follow — a directory, an action cache, a deployment — all want a file whose * name is a commit and whose contents hash the same on two machines, which is * what the encoder's sorted dictionary is for. */ export declare function writeSuiteIndex(path: string, index: SuiteIndex): Promise; /** * Read a suite index, refusing anything that is not one. * * A caller that cannot read one has no baseline and must say so rather than * answer from this run alone — the same direction * [`sense`](https://github.com/Variance-Authority/variance-authority/blob/main/packages/sense/src/test-selection/commit.ts) already fails in, where an * index that cannot say where it is means everything runs. */ export declare function readSuiteIndex(path: string): Promise; //# sourceMappingURL=file.d.ts.map