import type { Finding, IntentCheckpoint } from "audit-tools/shared"; import { type GroundExtractedFindingsOptions } from "./phases/grounding.js"; /** Survivors plus every pre-planning disposition, in `buildCoverageLedger` shape. */ export interface FindingFilterResult { /** Findings that survive every filter — the set the preview shows and the pipeline acts on. */ survivors: Finding[]; /** Cross-lens dedup map: absorbed finding id → surviving canonical finding id. */ mergeMap: Map; /** Ids dropped for carrying no evidence. */ droppedNoEvidence: string[]; /** Ids dropped because every cited path was phantom, with the phantom paths. */ droppedPhantomPaths: Map; /** Phantom paths stripped from surviving findings (kept, not dropped). */ phantomPathsRemoved: Map; /** Ids dropped by the intent checkpoint (filters / excluded scope). */ droppedByCheckpoint: string[]; } export interface RunFindingFilterPassOptions { root: string; /** Confirmed intent checkpoint; absent/draft/no-constraints keeps everything. */ checkpoint?: IntentCheckpoint; /** * Passed through to grounding: set false for findings grounded by construction * (contract-pipeline obligation evidence) rather than by path citation. Path * grounding still runs. Defaults to true (original audit findings cite paths). */ evidenceGrounding?: boolean; /** Optional one-shot repair for all-phantom findings (see groundExtractedFindings). */ repairZeroPathFindings?: GroundExtractedFindingsOptions["repairZeroPathFindings"]; } /** * Run the canonical pre-planning filter chain once, in the established order: * 1. drop findings with no evidence, * 2. cross-lens dedup (fold duplicates a different lens flagged independently), * 3. phantom-path grounding (strip non-existent paths; drop all-phantom findings), * 4. intent-checkpoint exclusion (severity/lens/package/theme/scope filters). * * Returns the survivors and the full disposition record. Operates on findings * only — block pruning is the caller's job (prune to `survivors` once at the end). */ export declare function runFindingFilterPass(findings: Finding[], options: RunFindingFilterPassOptions): Promise; //# sourceMappingURL=findingFilter.d.ts.map