import type { SerializedGraph, GraphDiff } from '../../domain/types/serialized-graph.js'; export declare class GraphComparator { /** * Compare two serialized graph snapshots and produce a diff. * * @param before - The "before" snapshot (e.g., from main branch) * @param after - The "after" snapshot (e.g., from feature branch) * @returns A structured diff report */ compare(before: SerializedGraph, after: SerializedGraph): GraphDiff; /** * Detect structural changes: nodes added, removed, or unchanged. * Nodes are matched by their componentName + lineNumber combination * (not by ID, since IDs are ephemeral and change between analyses). */ private diffStructure; /** * Build a stable map keyed by "componentName:lineNumber". * This is the most reliable way to match nodes across snapshots * since IDs are regenerated each analysis. */ private buildStableMap; /** * Detect spacing changes on nodes that exist in both snapshots. * Compares all spacing properties (margin, padding, gap) for * nodes matched by stable key. */ private diffSpacing; /** * Generate a human-readable description of a spacing change. */ private describeSpacingChange; /** * Compare violation counts between two snapshots. */ private diffViolations; /** * Sum all violation counts. */ private sumViolations; /** * Compare health scores between two snapshots. */ private diffHealthScore; /** * Compare complexity grades between two snapshots. */ private diffComplexity; /** * Convert a SerializedNode to a NodeSummary. */ private toNodeSummary; } /** * Format a GraphDiff as a human-readable ASCII report. * This is the primary output format for the diff_layout_graphs tool. */ export declare function formatDiff(diff: GraphDiff): string; //# sourceMappingURL=GraphComparator.d.ts.map