/**
 * Three-Way Diff for Conflict Resolution (Item 110)
 * Handles merge conflicts with three-way comparison
 */
import { EventEmitter } from 'events';
export interface DiffLine {
    lineNumber: number;
    content: string;
    source: 'base' | 'ours' | 'theirs' | 'both';
}
export interface DiffHunk {
    startLine: number;
    endLine: number;
    base: string[];
    ours: string[];
    theirs: string[];
    status: 'clean' | 'conflict' | 'auto-merged';
}
export interface ThreeWayDiffResult {
    hunks: DiffHunk[];
    hasConflicts: boolean;
    conflictCount: number;
    merged: string | null;
}
export interface ConflictResolution {
    hunkIndex: number;
    choice: 'ours' | 'theirs' | 'both' | 'custom';
    customContent?: string;
}
export declare class ThreeWayDiff extends EventEmitter {
    diff(base: string, ours: string, theirs: string): ThreeWayDiffResult;
    private autoMerge;
    resolveConflicts(diff: ThreeWayDiffResult, resolutions: ConflictResolution[]): string;
    formatConflictMarkers(hunk: DiffHunk): string;
    parseConflictMarkers(content: string): DiffHunk[];
}
export declare function getThreeWayDiff(): ThreeWayDiff;
export default ThreeWayDiff;
