import { type CandidateOverlay } from "./candidate-overlay.ts"; import type { ProjectDiagnostic, ValidationProgramContext } from "./program-diagnostics.ts"; export interface OverlayDependencyGroups { /** Overlay path key -> group id. */ groupOf: Map; /** Group id -> overlay path keys in that group. */ members: Map; } export interface DiagnosticAttribution { /** Overlay path key -> new diagnostics attributed to that candidate file. */ byFile: Map; /** Diagnostics that could not be safely attributed to any candidate file. */ unattributed: ProjectDiagnostic[]; } /** Union overlay files connected by imports in either direction. */ export declare function buildOverlayDependencyGroups(overlay: CandidateOverlay, context: ValidationProgramContext): OverlayDependencyGroups; /** * Attribute each newly introduced diagnostic to candidate files. Diagnostics * inside a candidate file attach directly; diagnostics in untouched project * files are followed through their resolved relative imports (bounded breadth- * first search) to the candidate files that could have caused them. Anything * that cannot be linked stays unattributed, and the caller must fail the batch. */ export declare function attributeDiagnostics(diagnostics: readonly ProjectDiagnostic[], overlay: CandidateOverlay, context: ValidationProgramContext): DiagnosticAttribution; //# sourceMappingURL=dependency-graph.d.ts.map