/** * 为字符串添加 ANSI 加粗控制字符 * @param content 要处理的字符串 */ export declare function bold(content: string): string; /** * 为字符串添加 ANSI 颜色控制字符 * @param content 要处理的字符串 * @param color 要添加的颜色 */ export declare function color(content: string, color: ANSIColor): string; /** * 为字符串添加 ANSI 背景色控制字符 * @param content 要处理的字符串 * @param color 要添加的背景色 */ export declare function backgroundColor(content: string, color: ANSIColor): string; /** * 表示 ANSI 颜色代码 * @see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors */ export declare const enum ANSIColor { /** 黑色 */ black = 30, /** 深红色 */ red = 31, /** 绿色 */ green = 32, /** 深黄色 */ yellow = 33, /** 深蓝色 */ blue = 34, /** 紫色 */ magenta = 35, /** 蓝绿色 */ cyan = 36, /** 浅灰色 */ white = 37, /** 深灰色 */ brightBlack = 90, /** 红色 */ brightRed = 91, /** 青色 */ brightGreen = 92, /** 黄色 */ brightYellow = 93, /** 蓝色 */ brightBlue = 94, /** 桃红色 */ brightMagenta = 95, /** 浅蓝色 */ brightCyan = 96, /** 白色 */ brightWhite = 97 } /** * 删除字符串中的所有 ANSI 控制字符 * @param content 要处理的字符串 */ export declare function removeANSICodes(content: string): string; /** * 如果字符串超出最大宽度,则将中间部分替换为省略号 * @param content 要处理的字符串(换行会被替换为空格) * @param ellipsis 内容超出最大宽度后使用的省略号 * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) */ export declare function truncateString(content: string, ellipsis?: string, maxWidth?: number): string; /** * 如果字符串超出最大宽度,则在单词处换行 * @param content 要处理的字符串 * @param indent 新行的缩进空格数 * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) * @returns 返回由每一行内容组成的数组 */ export declare function wrapString(content: string, indent?: number, maxWidth?: number): string[]; /** * 格式化一个列表,将列表每项按水平方向平铺,超出最大宽度后换行,并保证每项的首字符对齐 * @param items 要格式化的所有列表项(不支持换行) * @param space 列表中每项间隔的空格数 * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) * @example formatList(["a", "ab"])) */ export declare function formatList(items: readonly string[], space?: number, maxWidth?: number): string; /** * 格式化一个树,在每个节点前插入层次关系标记 * @param items 要格式化的所有节点项 * @param items[].indent 缩进数 * @param items[].icon 在层次关系标记前插入的图标或文案(不支持换行) * @param items[].label 节点文案 * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) * @example formatTree([{indent: 0, label: "x"}, {indent: 1, label: "x1"}]) */ export declare function formatTree(items: readonly { indent: number; icon?: string; label: string; }[], maxWidth?: number): string; /** * 格式化一个表格 * @param rows 所有行组成的数组,数组的每一项是当前行所有列组成的数组 * @param columnsAlign 每列的对齐方式 * @param columnSeparator 列之间的分隔符 * @param headerSeparator 首行和表格主体的分隔字符,如果为空则不显示分隔条 * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) * @example formatTable([["a", "ab"], ["a2", "ab2"]]) */ export declare function formatTable(rows: readonly string[][], columnsAlign?: ("left" | "center" | "right")[], columnSeparator?: string, headerSeparator?: string, maxWidth?: number): string; /** * 格式化一个代码片段 * @param content 要格式化的代码(不支持 ANSI 控制字符) * @param line 突出显示的开始行号(从 0 开始),如果内容超出最大高度,则只显示该行及其相邻行 * @param column 突出显示的开始列号(从 0 开始),如果内容超出最大宽度,则只显示该列及其相邻列 * @param endLine 突出显示的结束行号(从 0 开始),如果未提供则只突出显示开始行列号所在的位置 * @param endColumn 突出显示的结束列号(从 0 开始),如果未提供则只突出显示开始行列号所在的位置 * @param lineNumbers 是否显示行号 * @param columnNumbers 是否显示列指示器 * @param tab 用于代替制表符的字符串 * @param maxHeight 允许显示的最大高度(即行数) * @param maxWidth 允许显示的最大宽度(一般地,西文字母宽度为 1,中文文字宽度为 2) */ export declare function formatCodeFrame(content: string, line?: number, column?: number, endLine?: number, endColumn?: number, lineNumbers?: boolean, columnNumbers?: boolean, tab?: string, maxHeight?: number, maxWidth?: number): string; /** * 将 ANSI 控制字符转为等效的 HTML 代码 * @param content 要转换的字符串 * @param colors 自定义生成的颜色,键为原始 HTML 颜色代码,值为替代色,用于内置颜色代码如下: * * ANSI 颜色代码 | HTML 颜色代码 * -------------|----------------------- * 30 | `black` * 31 | `darkred` * 32 | `darkgreen` * 33 | `olive` * 34 | `navy` * 35 | `darkmagenta` * 36 | `darkcyan` * 37 | `sliver` * 90 | `gray` * 91 | `red` * 92 | `green` * 93 | `yellow` * 94 | `blue` * 95 | `magenta` * 96 | `cyan` * 97 | `white` * * @param style 设置初始的 CSS 样式,键为 CSS 属性名,值为 CSS 属性值,转换结束后对象会被更新为最新的样式 */ export declare function ansiToHTML(content: string, colors?: { [key: string]: string; }, style?: { [key: string]: string; }): string; /** * 获取字符串的显示宽度,如果字符串中有换行,则获取最宽的行的宽度 * @param content 要计算的字符串 * @returns 返回宽度,一般地,西文字母返回 1,中文文字返回 2 */ export declare function getStringWidth(content: string): number; /** * 获取字符的显示宽度 * @param char 要计算的 Unicode 字符编码 * @returns 返回宽度,一般地,西文字母返回 1,中文文字返回 2 */ export declare function getCharWidth(char: number): 1 | 2 | 4;