import type { Plugin } from 'unified';
export type MarkdownRemarkPlugin = Plugin | [Plugin, ...unknown[]];
export type MarkdownToHtmlOptions = MarkdownRemarkPlugin[];
/**
 * Markdown 转 HTML 的配置选项
 */
export interface MarkdownToHtmlConfig {
    /** 是否在新标签页打开链接 */
    openLinksInNewTab?: boolean;
    /** 自定义段落标签，默认为 'p' */
    paragraphTag?: string;
    /** 用户自定义的 unified 插件配置 */
    markedConfig?: MarkdownRemarkPlugin[];
}
/**
 * HTML 转义函数
 * @param html - 要转义的 HTML 字符串
 * @param encode - 是否编码所有特殊字符（包括 &）
 * @returns 转义后的字符串
 */
export declare function escapeHtml(html: string, encode?: boolean): string;
/**
 * mdast-util-to-hast 自定义 handler：将 remark-directive 的 textDirective 转为 span 元素
 * 避免 "Cannot handle unknown node textDirective" 错误
 */
declare function textDirectiveHandler(state: any, node: any): any;
/**
 * mdast-util-to-hast 自定义 handler：将 remark-directive 的 leafDirective 转为 span 元素
 * 避免 "Cannot handle unknown node leafDirective" 错误
 */
declare function leafDirectiveHandler(state: any, node: any): any;
/**
 * remark-rehype 的 directive 节点 handlers，用于避免 "Cannot handle unknown node textDirective" 等错误
 * 可复用于 parseTable 等其他使用 remark-rehype 的场景
 */
export declare const REMARK_REHYPE_DIRECTIVE_HANDLERS: {
    textDirective: typeof textDirectiveHandler;
    leafDirective: typeof leafDirectiveHandler;
};
export declare const DEFAULT_MARKDOWN_REMARK_PLUGINS: readonly MarkdownRemarkPlugin[];
/**
 * 将 Markdown 内容转换为 HTML（异步版本）
 *
 * 使用 unified 处理器链来处理 Markdown 到 HTML 的转换，支持：
 * - GitHub 风味 Markdown (GFM)
 * - 数学公式 (KaTeX)
 * - 前置元数据 (Frontmatter)
 * - 特殊字符修复
 * - 原始 HTML 标签
 * - 链接在新标签页打开（可选）
 * - 自定义段落标签（可选）
 * - 代码块流式状态支持
 *
 * @param markdown - 要转换的 Markdown 字符串
 * @param plugins - 可选的 unified 插件配置
 * @param config - 可选的渲染配置选项
 * @returns Promise<string> - 从 Markdown 生成的 HTML 字符串
 *
 * @example
 * ```typescript
 * const html = await markdownToHtml('# 标题\n\n这是**粗体**文本');
 * console.log(html); // '<h1>标题</h1><p>这是<strong>粗体</strong>文本</p>'
 *
 * // 使用配置选项
 * const htmlWithConfig = await markdownToHtml(
 *   '[链接](https://example.com)',
 *   undefined,
 *   { openLinksInNewTab: true, paragraphTag: 'div' }
 * );
 * ```
 *
 * @throws {Error} 当转换过程中发生错误时返回空字符串
 */
export declare const markdownToHtml: (markdown: string, plugins?: MarkdownToHtmlOptions, config?: MarkdownToHtmlConfig) => Promise<string>;
/**
 * 将 Markdown 内容转换为 HTML（同步版本）
 *
 * 同步版本的 markdownToHtml，使用相同的处理器链但以同步方式执行。
 * 适用于不需要异步处理的场景，但可能会阻塞主线程。
 *
 * @param markdown - 要转换的 Markdown 字符串
 * @param plugins - 可选的 unified 插件配置
 * @param config - 可选的渲染配置选项
 * @returns string - 从 Markdown 生成的 HTML 字符串
 *
 * @example
 * ```typescript
 * const html = markdownToHtmlSync('## 副标题\n\n- 列表项1\n- 列表项2');
 * console.log(html); // '<h2>副标题</h2><ul><li>列表项1</li><li>列表项2</li></ul>'
 *
 * // 使用配置选项
 * const htmlWithConfig = markdownToHtmlSync(
 *   '[链接](https://example.com)',
 *   undefined,
 *   { openLinksInNewTab: true }
 * );
 * ```
 *
 * @throws {Error} 当转换过程中发生错误时返回空字符串
 *
 * @remarks
 * - 建议在可能的情况下使用异步版本 `markdownToHtml`
 * - 同步版本可能影响用户界面响应性
 */
export declare const markdownToHtmlSync: (markdown: string, plugins?: MarkdownToHtmlOptions, config?: MarkdownToHtmlConfig) => string;
export {};
