import type { VerificationRule } from './types.js'; export interface ConflictReport { readonly direct_conflicts: readonly DirectConflict[]; readonly scope_overlaps: readonly ScopeOverlap[]; readonly transitive_chains: readonly TransitiveChain[]; readonly summary: string; } export interface DirectConflict { readonly rule_a: string; readonly rule_b: string; readonly test_case_id: string; readonly rule_a_verdict: 'PASS' | 'FAIL'; readonly rule_b_verdict: 'PASS' | 'FAIL'; readonly description: string; } export interface ScopeOverlap { readonly rule_a: string; readonly rule_b: string; readonly overlapping_categories: readonly string[]; readonly overlapping_languages: readonly string[]; readonly risk: 'low' | 'medium' | 'high'; readonly description: string; } export interface TransitiveChain { readonly chain: readonly string[]; readonly root_conflict: string; } export declare class RuleConflictDetector { /** * Perform comprehensive conflict analysis on a set of rules. * Detects direct conflicts (opposite verdicts on same input), * scope overlaps (same claim categories + languages), and * transitive conflict chains. */ analyze(rules: readonly VerificationRule[]): ConflictReport; /** * Check if adding a new rule would introduce conflicts. */ checkNewRule(newRule: VerificationRule, existingRules: readonly VerificationRule[]): ConflictReport; private findDirectConflicts; private compareRulePair; private runFormalCheck; private findScopeOverlaps; private assessOverlapRisk; private findTransitiveChains; private hasOverlappingScope; private generateSummary; }