import type { HeaderTable } from './tables/head'; import type { MathTable } from './tables/math'; import type { Glyph, TopDict } from './tables/cff-types'; export type TableRecord = { readonly tableTag: string; readonly checksum: number; readonly offset: number; readonly length: number; }; export type TableDirectory = { readonly sfntVersion: string; readonly numTables: number; readonly searchRange: number; readonly entrySelector: number; readonly rangeShift: number; readonly tableRecords: Record; }; export type GlyphMetrics = { readonly advance: number; readonly bearingX: number; readonly bearingY: number; readonly width: number; readonly height: number; }; export type Font = { readonly cff: { readonly name: string; readonly topDict: TopDict; }; readonly head: HeaderTable; readonly math: MathTable; readonly getGlyphID: (char: string) => number; readonly getGlyph: (glyphID: number) => Glyph; readonly getGlyphMetrics: (glyphID: number) => GlyphMetrics; }; export type FontData = { readonly font: Font; readonly fontFamily: string; };