import * as THREE from 'three/webgpu'; export type FontCanvas = HTMLCanvasElement | OffscreenCanvas; export type FontCanvasRenderingContext = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D; export interface FontGlyphMetrics { char: string; data: Uint8ClampedArray; width: number; height: number; glyphWidth: number; glyphHeight: number; glyphTop: number; glyphLeft: number; glyphAdvance: number; } export interface FontAtlasGlyph extends FontGlyphMetrics { atlasX: number; atlasY: number; } export interface FontLayoutGlyph extends FontAtlasGlyph { left: number; top: number; boxTop: number; boxHeight: number; } export interface FontLayoutInfo { glyphs: FontLayoutGlyph[]; width: number; height: number; } export type FontGlyphCache = Map; /** * Manages text layout and an SDF font atlas for vectorized rendering based on Valve's '07 SIGGRAPH paper. * @see https://steamcdn-a.akamaihd.net/apps/valve/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf */ export declare class FontManager { fontFamily: string; fontWeight: string; fontStyle: string; fontSize: number; width: number; height: number; glyphs: FontGlyphCache; texture: THREE.DataTexture; version: number; canvas: FontCanvas | null; ctx: FontCanvasRenderingContext | null | undefined; _alphabet: string | undefined; lineHeight: number | undefined; maxAscent: number | undefined; margin: number | undefined; glyphSize: number | undefined; needsUpdate: boolean | undefined; _gridOuter: Float64Array | undefined; _gridInner: Float64Array | undefined; _f: Float64Array | undefined; _z: Float64Array | undefined; _v: Uint16Array | undefined; constructor(); getGlyphInfo(char: string): FontGlyphMetrics | null; initCanvas(): void; update(chars: string): void; getLayoutInfo(text?: string): FontLayoutInfo; }