import { OmmlJsonNode, MathObjectConverter } from '../types.js'; type MathAtomTag = 'mi' | 'mo' | 'mn'; /** * Split a math run's text into MathML atoms, matching Word's OMML2MML.XSL. * * Rules (ECMA-376 §22.1.2.116 example + Annex L.6.1.13): * - Consecutive digits — optionally containing one decimal point between digits — * group into a single ``. * - Each recognized operator character becomes its own ``. * - Every other character becomes its own ``. * * Example: `"n+1"` → `[n, +, 1]`. */ export declare function tokenizeMathText(text: string): Array<{ tag: MathAtomTag; content: string; }>; /** * Convert an m:r (math run) element to MathML atoms. * * m:r contains: * - m:rPr (math run properties: script, style, normal text flag) * - m:t (text content) * - Optionally w:rPr (WordprocessingML run properties for formatting) * * The run's text is split per-character into `` / `` / `` atoms * per Word's OMML2MML.XSL. For a single-atom run (common case — a one-letter * variable, single operator, or an all-digit number) the converter returns a * single Element. For a multi-atom run (e.g. "→∞", "x+1") it returns a * DocumentFragment whose children become siblings of the parent mrow. * * @spec ECMA-376 §22.1.2.116 (t) — example shows multi-char mixed runs as the * normal authored shape; §22.1.2.58 (lit) implies operators are classified * per-character by default. */ export declare const convertMathRun: MathObjectConverter; /** * Convert an m:r inside m:fName (m:func's function-name slot). Word's * OMML2MML.XSL keeps each letter-sequence whole while still splitting out * digits and operators — so `sin` stays `sin`, but `log_2` becomes * `log_2`. * * Returns a single Element for single-atom runs or a DocumentFragment when * the run emits multiple atoms. Returns null for empty text. */ export declare function convertMathRunAsFunctionName(node: OmmlJsonNode, doc: Document): Node | null; export {}; //# sourceMappingURL=math-run.d.ts.map