/**
 * Shared diff generation utility
 *
 * This module provides a unified diff generation algorithm used across
 * multiple editor tools (text-editor, morph-editor, unified-diff-editor).
 *
 * The algorithm produces unified diff format with context lines,
 * suitable for display and review.
 */
export interface DiffHunk {
    oldStart: number;
    oldCount: number;
    newStart: number;
    newCount: number;
    lines: Array<{
        type: '+' | '-' | ' ';
        content: string;
    }>;
}
export interface DiffChange {
    oldStart: number;
    oldEnd: number;
    newStart: number;
    newEnd: number;
}
export interface DiffResult {
    summary: string;
    diff: string;
    addedLines: number;
    removedLines: number;
    hunks: DiffHunk[];
}
export interface DiffOptions {
    /** Number of context lines around changes (default: 3) */
    contextLines?: number;
    /** Custom summary prefix (default: "Updated") */
    summaryPrefix?: string;
    /** Include file path in summary (default: true) */
    includeFilePath?: boolean;
}
/**
 * Generate a unified diff between old and new content
 *
 * @param oldLines - Array of lines from the original content
 * @param newLines - Array of lines from the new content
 * @param filePath - File path for the diff header
 * @param options - Optional configuration
 * @returns DiffResult with formatted diff and statistics
 *
 * @example
 * ```typescript
 * const oldContent = 'hello\nworld';
 * const newContent = 'hello\nnew world';
 * const result = generateDiff(
 *   oldContent.split('\n'),
 *   newContent.split('\n'),
 *   'example.txt'
 * );
 * console.log(result.diff);
 * ```
 */
export declare function generateDiff(oldLines: string[], newLines: string[], filePath: string, options?: DiffOptions): DiffResult;
/**
 * Generate diff from string content (convenience wrapper)
 *
 * @param oldContent - Original content as string
 * @param newContent - New content as string
 * @param filePath - File path for the diff header
 * @param options - Optional configuration
 * @returns Formatted diff string
 */
export declare function generateDiffFromStrings(oldContent: string, newContent: string, filePath: string, options?: DiffOptions): string;
/**
 * Generate a creation diff (for new files)
 *
 * @param content - New file content
 * @param filePath - File path
 * @returns Formatted diff string
 */
export declare function generateCreationDiff(content: string, filePath: string): string;
/**
 * Generate a deletion diff (for removed files)
 *
 * @param content - Deleted file content
 * @param filePath - File path
 * @returns Formatted diff string
 */
export declare function generateDeletionDiff(content: string, filePath: string): string;
