import type { BaselineViolation, EslintFinding, EslintRunOptions, EslintRunResult, EslintState, EslintSummary, RedLineEntry } from './eslint-runner-types.js'; export declare function severityFor(value: unknown): 'error' | 'warn' | 'info'; export declare function summarize(findings: readonly EslintFinding[]): EslintSummary; type DiffRange = { readonly file: string; readonly lines: readonly number[]; }; /** * Read `git diff HEAD --unified=0` and parse every `+` line as a * touched line number. Falls back to [] on any parse error so the * caller treats all findings as out-of-diff (no silent zero-result). */ export declare function resolveProjectRoot(cwd: string): string; export declare function inDiff(filePath: string, line: number, ranges: readonly DiffRange[]): boolean; export declare function loadBaseline(projectRoot: string, baselineFile: string): readonly BaselineViolation[]; export declare function matchBaseline(finding: EslintFinding, baseline: readonly BaselineViolation[], projectRoot: string): boolean; export declare function aggregateRedLine(baseline: readonly BaselineViolation[]): readonly RedLineEntry[]; export declare const EMPTY_DIFF_RANGE: readonly DiffRange[]; export declare const EMPTY_REDLINE: readonly RedLineEntry[]; /** * eslint skips dot-paths by default (backlog §2.41): a hand-run over * `.husky/*.mjs` answers "File ignored by default" and exits 0, so a run that * examined nothing is indistinguishable from a clean one. Any path SEGMENT * starting with a dot (but not the `.`/`..` navigational segments) makes the * requested scope one eslint will not look at unaided. */ export declare function isDotPathScope(scope: string | undefined): boolean; /** A message eslint emits for an entry it skipped instead of examining. */ export declare function isIgnoredMessage(message: string): boolean; /** The §2.41 refusal text for an examined population of 0. */ export declare function emptyPopulationReason(scope: string | undefined, ignoredFiles: number): string; export type EmptyDetail = { readonly reason?: string; readonly checkedFiles?: number; readonly ignoredFiles?: number; }; export declare function emptyResult(state: EslintState, start: number, rawOutput: string, detail?: EmptyDetail): EslintRunResult; export declare function buildEslintArgs(options: EslintRunOptions): string[]; export type { DiffRange };