import { Style } from "./ansi.js"; import { Block } from "./block.js"; export type BorderStyle = "rounded" | "heavy" | "double" | "light"; export type BorderChars = { tl: string; tr: string; bl: string; br: string; h: string; v: string; cross: string; leftTee: string; rightTee: string; }; export declare const BORDER_CHARS: Record; export declare function resolveBorderStyle(s: string | undefined): BorderStyle; export type BorderOpts = { borderStyle?: BorderStyle; borderColor?: string; padding?: number; title?: string; titleColor?: string; targetWidth?: number; }; export declare const BORDER_CELLS = 2; export declare function minWidthForTitle(titleText: string): number; export type TitlePlacement = { kind: "top"; title: string; } | { kind: "wrapped"; block: Block; }; export declare function placeTitle(title: string, innerWidth: number, titleStyle: Style): TitlePlacement; export declare function bordered(block: Block, opts: BorderOpts): Block; export declare function buildTopEdge(ch: BorderChars, innerWidth: number, wrapBorder: (s: string) => string, titleText: string, titleStyle: Style): string;