export declare const ARIA_VERSION = 1; /** Lines kept on disk: enough to reconstruct what the judge was shown, and more. */ export declare const MAX_STORED_LINES = 300; /** Lines given to the judge. A batch carries several shots and the images too. */ export declare const MAX_PROMPT_LINES = 120; /** A single line's cap: a long accessible name is a name, not a document. */ export declare const MAX_LINE_CHARS = 160; /** Runs of plain text longer than this are collapsed; a wall of copy is not structure. */ export declare const MAX_TEXT_RUN = 3; export interface AriaSidecar { version: number; note: string; shotId: string; runId: string; capturedAt: string; /** sha256 of the PNG this describes, for drift detection. */ shotHash: string; origin: "document" | "element"; /** The selector the tree was taken of, when the shot frames one element. */ scope: string | null; /** sha256 of `yaml`, which is what the ledger keys on. */ hash: string; lines: number; truncated: boolean; yaml: string; } /** The marker a cut tree ends with, so nothing it omits reads as absent. */ export declare function truncationLine(remaining: number): string; /** * Trim a tree to a line budget. * * Long lines are cut, runs of plain text are collapsed to their first few, and * whatever is still over the budget is dropped with the count said in the text. */ export declare function trimAria(yaml: string, maxLines: number): { yaml: string; lines: number; truncated: boolean; }; /** The sidecar as it is written beside the shot. */ export declare function buildAriaSidecar(yaml: string, shot: { id: string; runId: string; capturedAt: string; hash: string; }, scope: string | null): AriaSidecar; /** Read a sidecar back; null when absent, unreadable, or from another version. */ export declare function parseAriaSidecar(text: string): AriaSidecar | null; /** What the judge prompt carries for one shot: trimmed again, to the prompt's budget. */ export declare function promptTree(sidecar: AriaSidecar): string;