/** * A factory wrapper parsing a font file using Typr. * Also adds support for WOFF files (not WOFF2). */ import type { WorkerModule } from 'troika-worker-utils'; export interface ParsedFontGlyph { readonly index: number; readonly advanceWidth: number; readonly xMin: number; readonly yMin: number; readonly xMax: number; readonly yMax: number; readonly path: string; } export type ParsedFontGlyphCallback = (glyph: ParsedFontGlyph, x: number, y: number, characterIndex: number) => void; export interface ParsedFont { readonly ascender: number; readonly descender: number; readonly xHeight: number; readonly lineGap: number; readonly capHeight: number; readonly unitsPerEm: number; src?: string; supportsCodePoint(codePoint: number): boolean; forEachGlyph(text: string, fontSize: number, letterSpacing: number, callback: ParsedFontGlyphCallback): number; } export type ResolvedFont = ParsedFont & { src: string; }; export type FontParser = (buffer: ArrayBuffer) => ParsedFont; export type FontParserWorkerModule = WorkerModule<[ buffer: ArrayBuffer ], ParsedFont, FontParser>; declare const workerModule: FontParserWorkerModule; export default workerModule;