/**
 * @file Markdown 预览渲染器
 * @module renderer/Renderer
 *
 * 将 markdown 解析为 AST 并挂载到 DOM；支持全量与增量两条路径。
 *
 * ## 渲染流程
 *
 * ```
 * markdown
 *    ↓
 * TransformerEngine.parse / parseIncremental
 *    ↓
 * BlockIndex.mountFromAstWithContext 或 DomReconciler.reconcileDom
 *    ↓
 * mount（预览区 DOM）
 * ```
 *
 * 增量会话见 {@link IncrementalSession}；无 cache 或增量失败时降级 {@link renderFull}。
 *
 * 另订阅 {@link THEME_EVENT_LIGHT_DARK}，同步 `transformer.isDark` 并重绘图表主题。
 */
import { RenderOption } from "../renderer/RenderOption";
import { BlockIndex } from "../renderer/incremental/BlockIndex.js";
import type { PennaChangeLineSet } from "../renderer/incremental/PennaChangeSet";
import { ParserStore } from "../transformer/core/ParserStore";
import { RenderResult } from "../renderer/RenderResult";
/**
 * Markdown 预览渲染器。
 *
 * 持有 {@link TransformerEngine} 与 {@link IncrementalSession}，
 * 对外暴露 `render` / `renderFull` 及 TOC、块索引查询。
 */
export declare class Renderer {
    private readonly theme;
    private readonly mount;
    private readonly eventBus;
    private readonly logger;
    private readonly transformer;
    /** 增量渲染会话；`blocks` 与 `mount.children` 一一对应 */
    private readonly session;
    /** 最近一次成功渲染的 AST 根，供 TOC / ParserStore 查询 */
    private lastAst;
    /** 代码块复制按钮等客户端增强 */
    private codeListener;
    /** 预览区图片 / SVG 点击放大 */
    private imageListener;
    /**
     * @param options 挂载点、主题、事件总线、日志及可选解析器扩展
     */
    constructor(options: RenderOption);
    /** 明暗切换：同步 transformer 并重绘 Mermaid/ECharts 等图表 */
    private readonly onLightDarkChanged;
    /**
     * highlight.js 回调，注入围栏代码块高亮 HTML。
     *
     * @param code 源码
     * @param lang 语言标识；未知时走自动检测
     */
    private highlightCodeHtml;
    /** 将 {@link Theme} 当前明暗写入 `transformer.isDark` */
    private syncDarkFromTheme;
    /**
     * 渲染入口：有增量 cache 时尝试局部更新，否则或失败时全量渲染。
     *
     * @param markdown 完整 markdown 源码
     * @param changes  CM 行变更集；增量路径必需
     */
    render(markdown: string, changes?: PennaChangeLineSet[]): RenderResult;
    /**
     * 全量 parse + DOM 挂载，并接管增量会话快照。
     *
     * @param markdown 完整 markdown 源码
     */
    renderFull(markdown: string): RenderResult;
    /** 当前挂载块索引，顺序与 `mount.children` 一致 */
    getMountedBlocks(): BlockIndex[];
    private createRenderContextFromLastAst;
    /** 从最近 AST 提取层级 TOC；无 AST 时返回空数组 */
    getToc(): import("./toc/TocItem").TocItem[];
    /** 从最近 AST 提取扁平 TOC；无 AST 时返回空数组 */
    getTocFlat(): import("./toc/TocFlatItem").TocFlatItem[];
    /** 预览区挂载点 */
    getMount(): HTMLElement;
    /** 最近 AST 附带的 {@link ParserStore}；无 AST 或 store 时返回 `null` */
    getStore(): ParserStore | null;
    /** 注销事件监听、清空会话与代码块增强 */
    destroy(): void;
}
//# sourceMappingURL=Renderer.d.ts.map