export interface DiffSegment {
    type: 'added' | 'removed' | 'context';
    lineNumber: number;
    content: string;
}
/**
 * Result from building a diff with context lines
 */
export interface DiffWithContext {
    segments: DiffSegment[];
    additions: number;
    removals: number;
}
export declare function buildDiffSegments(previous: string, next: string): DiffSegment[];
/**
 * Fast in-memory diff algorithm - no git spawning, no temp files.
 * Uses efficient line-by-line comparison with context tracking.
 * ~10x faster than git-based diff for typical edits.
 */
export declare function buildDiffSegmentsFast(previous: string, next: string): DiffSegment[];
/**
 * Format diff lines with + and - prefixes for added/removed lines.
 * Supports context lines (unchanged lines around changes).
 */
export declare function formatDiffLines(diff: DiffSegment[], useColors?: boolean): string[];
/**
 * Format diff in Claude Code style with proper indentation and line wrapping.
 * Shows line numbers in margin with +/- symbols for changes.
 * Long lines are wrapped with continuation markers, but the default width is
 * deliberately generous so single logical lines don't look like multiple edits.
 *
 * Example output:
 *   1832 +    /**
 *        +     * Show a compacting
 *        + status with animated
 */
export declare function formatDiffClaudeStyle(diff: DiffSegment[], useColors?: boolean, maxLineWidth?: number): string[];
/**
 * Build a diff with context lines around changes (AGI CLI style).
 * Shows N lines before and after each change, with ... truncation for gaps.
 */
export declare function buildDiffWithContext(previous: string, next: string, contextLines?: number): DiffWithContext;
//# sourceMappingURL=diffUtils.d.ts.map