/** A git read the scan needs could not be completed. Thrown, never returned: * the alternative is an empty file list that reads as "nothing changed". */ export declare class GitReadFailedError extends Error { readonly code = "FILE_SIZE_GIT_READ_FAILED"; constructor(what: string, projectRoot: string, detail: string); } export type ChangedFiles = { /** Paths to measure in the working tree: Added/Modified entries plus rename * targets. Deletions are omitted — they have no body to measure. */ paths: string[]; /** The path `file`'s baseline size must be read from: itself, or the name it * had at `baseRef` before a rename. */ baselinePathFor(file: string): string; }; /** * One git enumeration for both readers that need the change set: the declared- * type rule judges `changedPaths` (deletions included), and the size scan * measures `changedFiles` (the A/M/R/untracked subset). Two spawns total, * `git diff` + `git ls-files`, never one pair per reader. */ export type GitChangeSet = { changedPaths: string[]; changedFiles: ChangedFiles; }; export declare function readGitChangeSet(projectRoot: string, baseRef: string, only?: readonly string[]): GitChangeSet; /** * The measurable subset alone. Kept as the size scan's entry point; the * transition gate calls `readGitChangeSet` so the type rule shares the read. */ export declare function readChangedFiles(projectRoot: string, baseRef: string, only?: readonly string[]): ChangedFiles; /** The file's raw-line count AT `baseRef`, or `null` when the ref has no such * path — i.e. the change ADDED the file and it is over the cap by creation. */ export declare function readBaseLineCount(projectRoot: string, baseRef: string, file: string): number | null;