export type DiffLineType = 'added' | 'removed' | 'unchanged' | 'context';
export interface DiffLine {
    type: DiffLineType;
    content: string;
    lineNumberA?: number;
    lineNumberB?: number;
}
export interface VisualDiffResult {
    linesA: number;
    linesB: number;
    added: number;
    removed: number;
    unchanged: number;
    diffLines: DiffLine[];
    htmlOutput: string;
}
export type MergeLineType = 'base' | 'a' | 'b' | 'conflict-start' | 'conflict-sep' | 'conflict-end';
export interface MergeLine {
    type: MergeLineType;
    content: string;
}
export interface ThreeWayMergeResult {
    hasConflicts: boolean;
    conflictCount: number;
    mergedLines: MergeLine[];
    mergedText: string;
}
export interface MergeConflict {
    startIndex: number;
    endIndex: number;
    aLines: string[];
    bLines: string[];
    baseLines: string[];
    resolution?: string;
}
export interface SmartMergeResult {
    resolvedCount: number;
    remainingConflicts: number;
    mergedText: string;
}
export interface MergePreviewResult {
    textA: string;
    textB: string;
    base?: string;
    mergeResult: ThreeWayMergeResult;
    canAutoMerge: boolean;
}
export interface VisualSpecDiffInput {
    textA: string;
    textB: string;
    labelA?: string;
    labelB?: string;
    outputFormat?: 'html' | 'text';
}
export interface ThreeWayMergeInput {
    base: string;
    textA: string;
    textB: string;
    labelA?: string;
    labelB?: string;
}
export interface SmartMergeConflictResolverInput {
    mergedText: string;
}
export interface MergePreviewInput {
    base: string;
    textA: string;
    textB: string;
}
export interface ApplyMergeInput {
    mergedText: string;
    projectPath: string;
    specId: string;
}
//# sourceMappingURL=spec-diff-visual-types.d.ts.map