/** * renderMonospaceTable — generic fixed-width plain-text table builder. * * Produces a string suitable for placement inside a fenced code block * (must_render_verbatim). The renderer does NOT use markdown table * syntax because proportional fonts in IDE chat panels destroy alignment * of markdown tables; this uses space-padded ASCII that stays correct in * any monospace context. * * Layout: * [title line] * HEADER ROW (left/right-padded per column) * DIVIDER ROW (─ repeated per column width) * DATA ROWS * [footer line] * * All widths are auto-computed from max(header.length, max(cell.length)) * then optionally capped at max_width. Columns are separated by " " * (two spaces). */ export interface Column { /** Column header text. */ header: string; /** Cell alignment. */ align: 'left' | 'right'; /** Extract the cell value from a row as a string. */ get: (row: Row) => string; /** Optional width cap. Cells longer than this are truncated with …. */ max_width?: number; } export interface RenderTableOpts { title?: string; footer?: string; /** Column separator. Defaults to " " (two spaces). */ separator?: string; } /** * Render a plain-text monospace table from a row array and column descriptors. * * @param rows - Data rows to render. * @param columns - Column descriptors (order matches rendered order). * @param opts - Optional title / footer / separator. * @returns Multi-line string. Caller places it inside a fenced code block. */ export declare function renderMonospaceTable(rows: Row[], columns: Column[], opts?: RenderTableOpts): string;