export type MathValueRecord = { readonly value: number; readonly deviceOffset: number; }; export type MathConstants = { readonly scriptPercentScaleDown: number; readonly scriptScriptPercentScaleDown: number; readonly delimitedSubFormulaMinHeight: number; readonly displayOperatorMinHeight: number; readonly mathLeading: number; readonly axisHeight: number; readonly accentBaseHeight: number; readonly flattenedAccentBaseHeight: number; readonly subscriptShiftDown: number; readonly subscriptTopMax: number; readonly subscriptBaselineDropMin: number; readonly superscriptShiftUp: number; readonly superscriptShiftUpCramped: number; readonly superscriptBottomMin: number; readonly superscriptBaselineDropMax: number; readonly subSuperscriptGapMin: number; readonly superscriptBottomMaxWithSubscript: number; readonly spaceAfterScript: number; readonly upperLimitGapMin: number; readonly upperLimitBaselineRiseMin: number; readonly lowerLimitGapMin: number; readonly lowerLimitBaselineDropMin: number; readonly stackTopShiftUp: number; readonly stackTopDisplayStyleShiftUp: number; readonly stackBottomShiftDown: number; readonly stackBottomDisplayStyleShiftDown: number; readonly stackGapMin: number; readonly stackDisplayStyleGapMin: number; readonly stretchStackTopShiftUp: number; readonly stretchStackBottomShiftDown: number; readonly stretchStackGapAboveMin: number; readonly stretchStackGapBelowMin: number; readonly fractionNumeratorShiftUp: number; readonly fractionNumeratorDisplayStyleShiftUp: number; readonly fractionDenominatorShiftDown: number; readonly fractionDenominatorDisplayStyleShiftDown: number; readonly fractionNumeratorGapMin: number; readonly fractionNumDisplayStyleGapMin: number; readonly fractionRuleThickness: number; readonly fractionDenominatorGapMin: number; readonly fractionDenomDisplayStyleGapMin: number; readonly skewedFractionHorizontalGap: number; readonly skewedFractionVerticalGap: number; readonly overbarVerticalGap: number; readonly overbarRuleThickness: number; readonly overbarExtraAscender: number; readonly underbarVerticalGap: number; readonly underbarRuleThickness: number; readonly underbarExtraDescender: number; readonly radicalVerticalGap: number; readonly radicalDisplayStyleVerticalGap: number; readonly radicalRuleThickness: number; readonly radicalExtraAscender: number; readonly radicalKernBeforeDegree: number; readonly radicalKernAfterDegree: number; readonly radicalDegreeBottomRaisePercent: number; }; export type GlyphVariantRecord = { readonly variantGlyph: number; readonly advanceMeasurement: number; }; export type GlyphPartRecord = { readonly glyphID: number; readonly startConnectorLength: number; readonly endConnectorLength: number; readonly fullAdvance: number; readonly partsFlags: number; }; export type GlyphAssembly = { readonly italicsCorrection: MathValueRecord; readonly partRecords: readonly GlyphPartRecord[]; }; export type GlyphConstruction = { readonly glyphAssembly: GlyphAssembly | null; readonly mathGlyphVariantRecords: readonly GlyphVariantRecord[]; }; export type MathVariants = { readonly minConnectorOverlap: number; readonly vertGlyphCoverageOffset: number; readonly horizGlyphCoverageOffset: number; readonly vertGlyphCount: number; readonly horizGlyphCount: number; readonly getVertGlyphConstruction: (glyphID: number) => GlyphConstruction | null; readonly getHorizGlyphConstruction: (glyphID: number) => GlyphConstruction | null; };