import { Handler } from '../core/Handler.js'; import { MathDocument, AbstractMathDocument, MathDocumentConstructor } from '../core/MathDocument.js'; import { MathItem, AbstractMathItem } from '../core/MathItem.js'; import { MmlNode } from '../core/MmlTree/MmlNode.js'; import { HtmlNode } from '../core/MmlTree/MmlNodes/HtmlNode.js'; import { MathML } from '../input/mathml.js'; import { SerializedMmlVisitor } from '../core/MmlTree/SerializedMmlVisitor.js'; export type Constructor = new (...args: any[]) => T; export declare class enrichVisitor extends SerializedMmlVisitor { protected mactionId: number; visitTree(node: MmlNode, math?: MathItem): string; visitHtmlNode(node: HtmlNode, _space: string): string; visitMactionNode(node: MmlNode, space: string): string; } export interface EnrichedMathItem extends MathItem { toMathML: (node: MmlNode, math: MathItem) => string; enrich(document: MathDocument, force?: boolean): void; unEnrich(document: MathDocument): void; toEnriched(mml: string): string; } export declare function EnrichedMathItemMixin>>(BaseMathItem: B, MmlJax: MathML, toMathML: (node: MmlNode, math: MathItem) => string): Constructor> & B; export interface EnrichedMathDocument extends AbstractMathDocument { enrich(): EnrichedMathDocument; enrichError(doc: EnrichedMathDocument, math: EnrichedMathItem, err: Error): void; } export declare function EnrichedMathDocumentMixin>>(BaseDocument: B, MmlJax: MathML): MathDocumentConstructor> & B; export declare function EnrichHandler(handler: Handler, MmlJax: MathML): Handler;