import { OptionList } from '../../util/Options.js'; import { StyleList } from '../../util/StyleList.js'; export interface CharOptions { ic?: number; sk?: number; dx?: number; unknown?: boolean; smp?: number; } export declare type CharData = [ number, number, number ] | [ number, number, number, C ]; export declare type CharMap = { [n: number]: CharData; }; export declare type CharMapMap = { [name: string]: CharMap; }; export interface VariantData { linked: CharMap[]; chars: CharMap; } export declare type VariantMap> = { [name: string]: V; }; export declare type CssFontData = [string, boolean, boolean]; export declare type CssFontMap = { [name: string]: CssFontData; }; export declare const enum DIRECTION { None = 0, Vertical = 1, Horizontal = 2 } export declare const V = DIRECTION.Vertical; export declare const H = DIRECTION.Horizontal; export declare type DelimiterData = { dir: DIRECTION; sizes?: number[]; variants?: number[]; schar?: number[]; stretch?: number[]; stretchv?: number[]; HDW?: number[]; min?: number; c?: number; fullExt?: [number, number]; }; export declare type DelimiterMap = { [n: number]: D; }; export declare const NOSTRETCH: DelimiterData; export declare type RemapData = string; export declare type RemapMap = { [key: number]: RemapData; }; export declare type RemapMapMap = { [key: string]: RemapMap; }; export declare type SmpMap = { [c: number]: number; }; export declare type SmpData = [number, number, number?, number?, number?]; export declare type FontParameters = { x_height: number; quad: number; num1: number; num2: number; num3: number; denom1: number; denom2: number; sup1: number; sup2: number; sup3: number; sub1: number; sub2: number; sup_drop: number; sub_drop: number; delim1: number; delim2: number; axis_height: number; rule_thickness: number; big_op_spacing1: number; big_op_spacing2: number; big_op_spacing3: number; big_op_spacing4: number; big_op_spacing5: number; surd_height: number; scriptspace: number; nulldelimiterspace: number; delimiterfactor: number; delimitershortfall: number; min_rule_thickness: number; separation_factor: number; extra_ic: number; }; export declare class FontData, D extends DelimiterData> { static OPTIONS: OptionList; static JAX: string; static NAME: string; static defaultVariants: string[][]; static defaultCssFonts: CssFontMap; protected static defaultCssFamilyPrefix: string; static VariantSmp: { [name: string]: SmpData; }; static SmpRanges: number[][]; static SmpRemap: SmpMap; static SmpRemapGreekU: SmpMap; static SmpRemapGreekL: SmpMap; protected static defaultAccentMap: RemapMap; protected static defaultMoMap: RemapMap; protected static defaultMnMap: RemapMap; static defaultParams: FontParameters; protected static defaultDelimiters: DelimiterMap; protected static defaultChars: CharMapMap; protected static defaultSizeVariants: string[]; protected static defaultStretchVariants: string[]; protected options: OptionList; protected variant: VariantMap; protected delimiters: DelimiterMap; protected sizeVariants: string[]; protected stretchVariants: string[]; protected cssFontMap: CssFontMap; cssFamilyPrefix: string; protected remapChars: RemapMapMap; params: FontParameters; skewIcFactor: number; protected _styles: StyleList; static charOptions(font: CharMap, n: number): CharOptions; constructor(options?: OptionList); get styles(): StyleList; set styles(style: StyleList); createVariant(name: string, inherit?: string, link?: string): void; protected remapSmpChars(chars: CharMap, name: string): void; protected smpChar(n: number): CharData; createVariants(variants: string[][]): void; defineChars(name: string, chars: CharMap): void; defineDelimiters(delims: DelimiterMap): void; defineRemap(name: string, remap: RemapMap): void; getDelimiter(n: number): DelimiterData; getSizeVariant(n: number, i: number): string; getStretchVariant(n: number, i: number): string; getChar(name: string, n: number): CharData; getVariant(name: string): V; getCssFont(variant: string): CssFontData; getFamily(family: string): string; getRemappedChar(name: string, c: number): string; } export interface FontDataClass, D extends DelimiterData> { OPTIONS: OptionList; defaultCssFonts: CssFontMap; defaultVariants: string[][]; defaultParams: FontParameters; charOptions(font: CharMap, n: number): C; new (...args: any[]): FontData; }