import { Model, ModelWriter } from 'ckeditor5';
import { MathCommandOptions } from './types.js';
/**
 * 在编辑器中插入公式元素
 */
export declare function insertMath(writer: ModelWriter, model: Model, options: MathCommandOptions): void;
/**
 * 检查当前选区是否允许插入公式
 */
export declare function isMathAllowed(model: Model): boolean;
/**
 * 使用 KaTeX 渲染 LaTeX 公式为 HTML 字符串
 */
export declare function renderKaTeX(latex: string, displayMode: boolean, options?: {
    throwOnError?: boolean;
    trust?: boolean;
    output?: 'html' | 'mathml';
}): string;
/**
 * 从 HTML 中提取 LaTeX 源码
 * 支持格式: \( ... \) 和 \[ ... \]
 */
export declare function extractLatexFromHtml(html: string): {
    latex: string;
    display: boolean;
} | null;
/**
 * 将 LaTeX 源码包装为 HTML 数据格式
 */
export declare function wrapLatexToHtml(latex: string, display: boolean): string;
/**
 * 向 textarea 的光标处插入 LaTeX 片段，并智能定位光标。
 *
 * - 若存在选区，则替换选区内容。
 * - 智能定位：插入后若片段中存在第一对花括号 `{...}` 且其中为占位内容，
 *   则选中该占位内容，便于用户直接替换（如 \frac{a}{b} 插入后选中首个 a）；
 *   否则光标落到插入片段末尾。
 * - 插入后重新聚焦输入框，并派发 input 事件以刷新预览。
 */
export declare function insertTextAtCursor(textarea: HTMLTextAreaElement, snippet: string): void;
//# sourceMappingURL=utils.d.ts.map