import { Handler } from '../core/Handler.js'; import { MathDocumentConstructor } from '../core/MathDocument.js'; import { MathML } from '../input/mathml.js'; import { EnrichedMathItem, EnrichedMathDocument } from './semantic-enrich.js'; export type Constructor = new (...args: any[]) => T; export type EMItemC = Constructor>; export type CMItemC = Constructor>; export type EMDocC = MathDocumentConstructor>; export type CMDocC = Constructor>; export interface ComplexityMathItem extends EnrichedMathItem { initialID: number; complexity(document: ComplexityMathDocument, force?: boolean): void; } export declare function ComplexityMathItemMixin>(BaseMathItem: B, computeComplexity: (math: ComplexityMathItem) => void): CMItemC & B; export interface ComplexityMathDocument extends EnrichedMathDocument { complexity(): ComplexityMathDocument; } export declare function ComplexityMathDocumentMixin>(BaseDocument: B): CMDocC & B; export declare function ComplexityHandler(handler: Handler, MmlJax?: MathML): Handler;