import * as THREE from 'three/webgpu'; 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; } /** Public surface of the legacy canvas-backed font atlas manager. */ export interface TextFontManager { fontFamily: string; fontWeight: string; fontStyle: string; fontSize: number; width: number; height: number; glyphs: Map; texture: THREE.DataTexture; version: number; canvas?: HTMLCanvasElement | OffscreenCanvas | null | undefined; lineHeight?: number | undefined; maxAscent?: number | undefined; margin?: number | undefined; glyphSize?: number | undefined; needsUpdate?: boolean | undefined; getGlyphInfo(char: string): FontGlyphMetrics | null; initCanvas(): void; update(chars: string): void; getLayoutInfo(text?: string): FontLayoutInfo; } declare const fontManager: TextFontManager; declare const fontGeometry: THREE.BufferGeometry; export { fontManager, fontGeometry };