import { MathDocumentConstructor } from '../../core/MathDocument.js'; import { MathItem } from '../../core/MathItem.js'; import { HTMLMathItem } from '../../handlers/html/HTMLMathItem.js'; import { HTMLDocument } from '../../handlers/html/HTMLDocument.js'; import { HTMLHandler } from '../../handlers/html/HTMLHandler.js'; export declare type Constructor = new (...args: any[]) => T; export declare type LazySet = Set; export declare class LazyList { protected id: number; protected items: Map>; add(math: LazyMathItem): string; get(id: string): LazyMathItem; delete(id: string): boolean; } export declare const LAZYID = "data-mjx-lazy"; export interface LazyMathItem extends MathItem { lazyCompile: boolean; lazyTypeset: boolean; lazyMarker: N; lazyTex: boolean; } export declare function LazyMathItemMixin>>(BaseMathItem: B): Constructor> & B; export interface LazyMathDocument extends HTMLDocument { lazyObserver: IntersectionObserver; lazyList: LazyList; lazyAlwaysContainers: N[]; lazyTypesetAll(): Promise; lazyAlways(): void; } export declare function LazyMathDocumentMixin>>(BaseDocument: B): MathDocumentConstructor> & B; export declare function LazyHandler(handler: HTMLHandler): HTMLHandler;