/** Top + bottom border rows consumed by `renderBorderedBox`. */
export declare const BORDER_VERTICAL_OVERHEAD = 2;
/** Left + right vertical bar columns (`│ ... │`) consumed by `renderBorderedBox`. */
export declare const BORDER_HORIZONTAL_OVERHEAD = 2;
/** Inner horizontal padding (1 col) between each border bar and content area. */
export declare const BORDER_INNER_PADDING_HORIZONTAL = 1;
/** Floor for the preview box's inner content width — CC parity (`PreviewBox.minWidth`). */
export declare const BOX_MIN_CONTENT_WIDTH = 40;
/**
 * Drops fenced-code-block marker lines (` ``` ` opener/closer) from rendered markdown.
 * pi-tui's Markdown emits literal opening ` ```lang ` and closing ` ``` ` lines around
 * code blocks; this strip leaves only the highlighted code body. Inline code
 * (`codespan`) is unaffected — pi-tui already renders it without backticks.
 */
export declare function stripFenceMarkers(lines: readonly string[]): string[];
/**
 * Wraps `lines` in a 4-sided ASCII border with 1 col of inner horizontal padding.
 * Layout per content row: `│` + ` ` + content padded to `contentInner` + ` ` + `│`,
 * where `contentInner = width - BORDER_HORIZONTAL_OVERHEAD - 2 * BORDER_INNER_PADDING_HORIZONTAL`.
 * Top/bottom dash runs span corner-to-corner (`width - BORDER_HORIZONTAL_OVERHEAD`). When
 * `hidden > 0`, the bottom-row dash run is replaced with ` ✂ ── N lines hidden ── ` (corners stay).
 */
export declare function renderBorderedBox(lines: readonly string[], width: number, colorFn: (s: string) => string, hidden?: number): string[];
/**
 * Compute box dimensions from content lines. Pure of args.
 *
 * CC parity:
 *   contentWidth = max(minWidth, widestRenderedLine)
 *   boxWidth     = min(contentWidth + 4, effectiveMaxWidth)
 *
 * Trailing whitespace is stripped before measuring because pi-tui's
 * `Markdown.render(width)` pads every line to `width`, which would otherwise force
 * the box to fill the whole column allocation.
 */
export declare function computeBoxDimensions(contentLines: readonly string[], maxInnerWidth: number): {
    innerWidth: number;
    boxWidth: number;
};
//# sourceMappingURL=preview-box-renderer.d.ts.map