/**
 * Semantic Diff Tool
 *
 * Provides semantic-aware code comparison:
 * - Ignores formatting differences
 * - Detects renamed variables/functions
 * - Identifies moved code blocks
 * - Highlights structural changes
 */
export type ChangeType = 'added' | 'removed' | 'modified' | 'renamed' | 'moved' | 'formatting';
export interface SemanticChange {
    type: ChangeType;
    location: {
        file?: string;
        startLine: number;
        endLine: number;
    };
    description: string;
    oldCode?: string;
    newCode?: string;
    confidence: number;
}
export interface SemanticDiffResult {
    summary: {
        totalChanges: number;
        additions: number;
        deletions: number;
        modifications: number;
        renames: number;
        moves: number;
        formattingOnly: number;
    };
    changes: SemanticChange[];
    isSemanticEquivalent: boolean;
}
export interface DiffOptions {
    /** Ignore whitespace differences */
    ignoreWhitespace?: boolean;
    /** Ignore comment changes */
    ignoreComments?: boolean;
    /** Detect renamed identifiers */
    detectRenames?: boolean;
    /** Detect moved code blocks */
    detectMoves?: boolean;
    /** Minimum similarity for rename detection (0-1) */
    renameSimilarity?: number;
}
/**
 * Compute semantic diff between two code strings
 */
export declare function semanticDiff(oldCode: string, newCode: string, options?: DiffOptions): SemanticDiffResult;
/**
 * Compare two files semantically
 */
export declare function semanticDiffFiles(oldFile: string, newFile: string, options?: DiffOptions): Promise<SemanticDiffResult>;
/**
 * Format semantic diff result for display
 */
export declare function formatSemanticDiff(result: SemanticDiffResult): string;
export default semanticDiff;
