import type { Rule, Thresholds, Verdict } from "oh-my-plumb-schema"; /** Every tracked or untracked-but-not-ignored file under the given paths, repo-relative. */ export declare const listRepoFiles: (root: string, paths: readonly string[]) => string[]; /** The files at least one active edit-phase model rule applies to; audits judge nothing else. */ export declare const auditableFiles: (root: string, files: readonly string[], rules: readonly Rule[]) => { files: string[]; skipped: { tooBig: string[]; outOfScope: number; }; }; /** A whole file as one hunk of added lines: how an audit shows a judge a file that was never "changed". */ export declare const fileAsAdded: (content: string) => string; /** Lines per chunk. A judge asked about a 900 line file answers about the average of it; asked about 150 lines it answers about those lines. */ export declare const AUDIT_CHUNK_LINES = 150; /** A file as consecutive hunks of added lines, each small enough to be judged on its own. */ export declare const fileAsChunks: (content: string, size?: number) => string[]; export type AuditFileResult = { file: string; verdicts: Verdict[]; rules: number; latencyMs: number; costUsd: number; /** Chunks the gateway never answered, so the file was judged in part or not at all. */ chunksFailed?: number; chunks?: number; error?: string; }; export type AuditProgress = (done: number, total: number, spendUsd: number) => void; export declare const pool: (items: readonly T[], size: number, work: (item: T) => Promise) => Promise; export declare const auditFiles: (root: string, files: readonly string[], rules: readonly Rule[], thresholds: Thresholds, concurrency: number, progress: AuditProgress) => Promise; export type RuleTally = { ruleId: string; broken: string[]; flagged: string[]; checked: number; }; /** Per rule: which files break it, which are uncertain, how many it saw. Loudest first. */ export declare const tallyByRule: (results: readonly AuditFileResult[]) => RuleTally[]; //# sourceMappingURL=audit.d.ts.map