/**
 * OwlCoda TUI Diff Renderer
 *
 * Terminal port of the design's `oc-diff` block.
 *
 * Anatomy:
 *   ┌──────────────────────────────────────────────────────────┐  hair-faint border
 *   │ {dir/}{file}                       +N -M                 │  bgRaise head
 *   ├──────────────────────────────────────────────────────────┤
 *   │ @@ -48,9 +48,12 @@ context                               │  bgCard, info color
 *   │  48   48   export function useConversation() {           │  bgInput gutter, dim code
 *   │  51    -    const appendToken = (tok: string) => {       │  errSoft bg, error fg
 *   │       51    const appendToken = useCallback(...);        │  successSoft bg, success fg
 *   │ ...                                                       │
 *   └──────────────────────────────────────────────────────────┘
 *
 * The `renderChangeBlockLines` / `renderFileCreateLines` helpers continue
 * to render compact, border-less inline edit hunks (used inside tool result
 * trees) — those just need the new soft tints and brand colors so they
 * agree with the rest of the design system.
 */
/**
 * Render a hunk header band — design's `oc-diff-hunk-head`:
 *
 *   @@ -48,9 +48,12 @@ context
 *
 * Painted in --info on --bg-card so it sits as a clear axis between the
 * file header and the line bodies. Returns a single string with bg + fg
 * SGR; caller is responsible for the surrounding indent.
 */
export declare function renderHunkHeader(opts: {
    oldStart: number;
    oldLen: number;
    newStart: number;
    newLen: number;
    context?: string;
    width: number;
    indent?: string;
}): string;
export interface DiffLine {
    type: 'add' | 'remove' | 'context' | 'header';
    content: string;
    lineNum?: number;
}
/**
 * Create a unified diff between old and new text.
 * Returns colored diff lines ready for display.
 */
export declare function createUnifiedDiff(oldText: string, newText: string, filePath?: string): DiffLine[];
/**
 * Format diff lines as colored terminal strings.
 *
 * Updated to use the design's brand colors (success/error) and shorter
 * one-cell sign columns so the body sits flush with the gutter.
 */
export declare function formatDiffLines(lines: DiffLine[]): string[];
/**
 * Render a complete file diff as the design's bordered diff card.
 *
 * Header band: bgRaise + path/stats. Body: bgInput, formatted lines.
 * Top accent border uses `success` for CREATE, `info` for UPDATE.
 */
export declare function renderDiffBox(oldText: string, newText: string, filePath: string, action?: 'CREATE' | 'UPDATE'): string;
export interface ChangeBlockOptions {
    startLine?: number;
    maxLines?: number;
    indent?: string;
    termCols?: number;
}
/**
 * Render a compact hunk-style change block for a single local edit.
 *
 *      42    context
 *      43  - old line         ← errSoft band
 *      43  + new line         ← successSoft band
 *      44    context
 */
export declare function renderChangeBlockLines(oldText: string, newText: string, opts?: ChangeBlockOptions): string[];
/**
 * Render a create-file change block: every line treated as an addition,
 * with 1-based line numbers, successSoft band, and a truncation tail.
 */
export declare function renderFileCreateLines(content: string, opts?: Omit<ChangeBlockOptions, 'startLine'>): string[];
/**
 * Count added / removed lines in a change region.
 */
export declare function countDiffStats(oldText: string, newText: string): {
    added: number;
    removed: number;
};
/**
 * Render a simple file creation display (no diff, just show content).
 */
export declare function renderFileCreate(filePath: string, content: string, maxLines?: number): string;
