import type { ValidationIssue } from '../types'; /** * Dedupe issues by (code, path, severity, rule). Prevents reporting the same * constraint violation (e.g. dom-6) multiple times when several validators * independently re-check the same rule, while preserving distinct slice * cardinality failures that legitimately share one base path. */ export declare function dedupeIssues(issues: ValidationIssue[]): ValidationIssue[]; /** * Remove only logically identical diagnostics without applying cross-code * suppression. This is used when independently validated child resources are * appended after the parent's semantic suppression pass: re-running semantic * suppression over the combined list can create cycles where two legitimate * representations suppress each other. */ export declare function dedupeExactIssues(issues: ValidationIssue[]): ValidationIssue[]; /** * Final resource-tree cleanup after recursively validated contained resources * have been appended. Keep this deliberately narrower than the normal * semantic suppression pass: only exact copies and the known parent/child * canonical-URI duplicate are removed. */ export declare function dedupeResourceTreeIssues(issues: ValidationIssue[]): ValidationIssue[]; export interface DedupeSuppressionTrace { readonly ruleId: string; readonly issue: ValidationIssue; } export interface DedupeIssuesResult { readonly issues: ValidationIssue[]; readonly suppressions: DedupeSuppressionTrace[]; } export declare function dedupeIssuesWithTrace(issues: ValidationIssue[]): DedupeIssuesResult; /** * Apply only cross-issue semantic suppression. Exact/logical identity remains * the responsibility of callers such as the persistence layer. */ export declare function suppressSemanticIssuesWithTrace(issues: ValidationIssue[]): DedupeIssuesResult; //# sourceMappingURL=validation-issue-dedupe.d.ts.map