/** * Common system fonts that are NOT on Google Fonts but render fine everywhere, * mapped onto the PDF base-14 standard fonts. Resolving these locally means: * - pdf-export embeds nothing — it just names the base-14 font, which pdfkit * has built-in AFM metrics for (accurate Latin advance widths for free). * - psd-import gets accurate aggregate metrics without a network fetch. * - svg-import / the browser canvas use the native family name directly. * * This is what lets strict mode not fail on Arial/Times/Courier, and matches * core's canonical fallback to Arial (Helvetica is the metric-equivalent * base-14 stand-in). * * Coverage is Latin-1 (base-14 limitation, accepted tradeoff). Non-Latin text * in a system font falls through to the normal fallback path. */ export interface SystemFontMetrics { /** Ascender as a fraction of em (1000 upm AFM values / 1000). */ ascent: number; descent: number; capHeight: number; /** Rough average glyph advance as a fraction of em, for coarse layout. */ avgAdvance: number; } export interface SystemFontResolution { /** Full base-14 pdfkit font name for the requested variant. */ pdfFont: string; /** Family name usable directly in CSS / the browser canvas. */ cssFamily: string; metrics: SystemFontMetrics; } /** * Normalize a raw fontFamily to a lookup key: lowercase, trimmed, quotes * stripped, and reduced to the first family in a CSS stack ("Arial, sans-serif" * → "arial"). */ export declare function normalizeFamily(family: string): string; /** * Resolve a system font, or `null` if the family isn't a known system font * (callers then try registered URLs / Google / fallback). */ export declare function resolveSystemFont(family: string, bold?: boolean, italic?: boolean): SystemFontResolution | null; /** Whether a raw family name maps to a known system font. */ export declare function isSystemFont(family: string): boolean;