import { DiffBlockData } from '../../diff-builder/common';
import { LineMapping, AlignedContent } from '../types';
/**
 * Marker for spacer lines.
 * Using multiple spaces to ensure the line renders with proper height.
 * The content will be hidden via CSS (color: transparent).
 */
export declare const SPACER_LINE = "\u00A0\u00A0\u00A0\u00A0";
/** Result of alignment process */
export interface AlignmentResult {
    beforeLines: string[];
    afterLines: string[];
    lineMap: LineMapping[];
    /** Line numbers that are spacers (0-indexed) */
    beforeSpacers: Set<number>;
    afterSpacers: Set<number>;
}
/**
 * Generates aligned content for side-by-side view from diff blocks.
 *
 * Uses token tags to determine which content appears on which side:
 * - Tokens tagged 'before' only: appear only on before side
 * - Tokens tagged 'after' only: appear only on after side
 * - Untagged tokens: appear on both sides
 *
 * @param diffBlocks - Diff block data array
 * @param format - Output format (for future use)
 * @returns Aligned content with spacer lines inserted
 */
export declare function generateAlignedContentFromDiff(diffBlocks: DiffBlockData[], format: 'json' | 'yaml', _beforeObj: any, _afterObj: any): AlignmentResult;
/**
 * Simplified alignment for when we just need basic before/after content
 * without proper token-based generation.
 */
export declare function generateAlignedContent(beforeContent: string, afterContent: string, diffBlocks: DiffBlockData[]): AlignmentResult;
/**
 * Creates aligned content strings from alignment result
 */
export declare function alignmentToContent(alignment: AlignmentResult): AlignedContent;
/** Result of unified content generation */
export interface UnifiedResult {
    lines: string[];
    lineMap: LineMapping[];
    /** For word diff mode: before content for each line (only for modified lines) */
    beforeContentMap?: Map<number, string>;
}
/** Options for unified content generation */
export interface UnifiedContentOptions {
    /** If true, modified lines show single line with word diff instead of remove+add */
    inlineWordDiff?: boolean;
}
/**
 * Generates unified/inline content from diff blocks.
 * Shows both before and after content in a single view:
 * - Removed lines are included and marked
 * - Added lines are included and marked
 * - Modified lines: with inlineWordDiff=true shows single line, otherwise shows remove+add
 *
 * @param diffBlocks - Diff block data array
 * @param format - Output format (for future use)
 * @param options - Generation options
 * @returns Unified content with line mappings
 */
export declare function generateUnifiedContentFromDiff(diffBlocks: DiffBlockData[], format: 'json' | 'yaml', options?: UnifiedContentOptions): UnifiedResult;
