/**
 * richTextRuns - 富文本片段（run）解析与 Canvas 渲染工具
 *
 * 设计目标：
 *  - 把一段富文本 HTML（来源于 TinyMCE / 简单粘贴 HTML）解析成一组带样式的"文字片段"（run），
 *    再按片段在 Canvas 上单行绘制，从而保留颜色 / 加粗 / 斜体 / 下划线 / 删除线等内联样式。
 *  - 不依赖 DOM（不会调用 document.createElement），完全用正则做结构化解析，
 *    既能在 SSR / Worker 环境下使用，也避免引入 DOM 解析开销。
 *  - 与现有 strip-tag 路径行为保持一致：&nbsp; / &amp; 等实体会被解码、<br> 折叠为空格、
 *    <img> 显示为 [图片]、<video> 显示为 [视频]、空白合并。
 *
 * 不在本模块职责内：
 *  - 多行换行（保持单行 + 末尾省略号，与 release 现状一致）
 *  - HTML 安全清洗（业务侧已用 DOMPurify 等保证 HTML 来源可信）
 *  - 字号 / 字体族切换（只读取 inline color / bold / italic / underline / strike，size/face 暂不渲染，避免列高跳变）
 */
/**
 * 单个富文本片段
 */
export interface RichTextRun {
    /** 片段纯文本（已解码 HTML 实体） */
    text: string;
    /** 是否加粗 */
    bold: boolean;
    /** 是否斜体 */
    italic: boolean;
    /** 是否下划线 */
    underline: boolean;
    /** 是否删除线 */
    strike: boolean;
    /** 文字颜色（CSS color），若为 undefined 表示沿用调用方默认色 */
    color?: string;
}
/**
 * 判断给定字符串是否为"富文本 HTML"（含结构性标签）。
 * 与 TextViewer.isRichTextContent / customStyle.isRichTextContent 保持同义。
 */
export declare function isRichTextHtml(value: unknown): value is string;
/**
 * 把一段富文本 HTML 解析为带样式的片段数组。
 *
 * 解析策略：
 *  - 用正则把 HTML 切成 token 序列（开标签 / 闭标签 / 文本），
 *    维护一个样式栈，遇到样式相关的标签就压栈、闭合时出栈。
 *  - 文本 token 直接结合栈顶样式产出 run；连续相同样式的 run 不做合并（绘制时按顺序叠加即可）。
 *  - 自闭合 / 替换型标签：<br> → 单空格 run；<img> → "[图片]" run；<video> → "[视频]" run。
 *
 * 与 strip 路径的等价性：把所有 run.text 顺序拼起来 + 折叠空白，应得到与 extractPlainText 相同的纯文本。
 */
export declare function parseHtmlToRuns(html: string): RichTextRun[];
/**
 * 在 Canvas 上按片段单行绘制富文本 runs，超出 maxWidth 时末尾追加省略号。
 *
 * 调用约定：
 *  - 调用前需由外层 ctx.save / restore 包围；
 *  - 外层应已设置 textBaseline、整体 fillStyle 默认色（用于无 color 的 run）；
 *  - 本函数会按 run 维度反复设置 ctx.font / ctx.fillStyle，因此调用方对这两项的预设会被覆盖；
 *  - 不修改 textAlign，绘制采用 left 对齐语义（startX 即第一片段左边界）。
 *
 * @param ctx Canvas 2D 上下文
 * @param runs 已解析的片段
 * @param startX 起始 X（文本左边界）
 * @param baselineY 文本基线 Y（依赖外层 baseline 设置）
 * @param maxWidth 文本可绘制最大宽度（超出截断 + …）
 * @param defaultColor 当 run 未指定 color 时使用的默认色
 * @param fontSize 字号（默认 VIEWER_FONT_SIZE）
 * @param fontFamily 字体族（默认 FONT_FAMILY_SYSTEM）
 * @returns 实际绘制的总宽度（含省略号）
 */
export declare function drawRichTextRuns(ctx: CanvasRenderingContext2D, runs: RichTextRun[], startX: number, baselineY: number, maxWidth: number, defaultColor: string, fontSize?: number, fontFamily?: string): number;
