import type { ValidationIssue } from '../types'; export interface ExpectedIssueAnchor { severity: ValidationIssue['severity']; kind: string; pathPattern: string; codeHint?: string; } export interface StableIssueSummaryOptions { ignoredCodes?: string[]; } export declare function issuePathMatchesPattern(actualPath: string | undefined, pattern: string): boolean; export declare function issueMatchesAnchor(issue: ValidationIssue, expected: ExpectedIssueAnchor): boolean; export declare function stableIssues(issues: ValidationIssue[], options?: StableIssueSummaryOptions): ValidationIssue[]; export declare function summarizeIssueAnchors(issues: ValidationIssue[], options?: StableIssueSummaryOptions): string; /** * Stable contract fingerprint for grouping and regression tests. * * Unlike ValidationIssue.id, this intentionally excludes message text, details, * timestamps, and generated ids. Those fields may change when diagnostics get * clearer; the fingerprint only tracks the issue identity consumers rely on. */ export declare function issueFingerprint(issue: ValidationIssue): string; export declare function summarizeIssueFingerprints(issues: ValidationIssue[], options?: StableIssueSummaryOptions): string; //# sourceMappingURL=issue-contract.d.ts.map