import { GlyphGeometryInfo, LoadedFont, GlyphCluster, GlyphData } from '../types'; import { CurveFidelityConfig, GeometryOptimizationOptions } from '../types'; import { Cache } from '../../utils/Cache'; export interface InstancedTextGeometry { vertices: Float32Array; normals: Float32Array; indices: Uint32Array; glyphInfos: GlyphGeometryInfo[]; planeBounds: { min: { x: number; y: number; z: number; }; max: { x: number; y: number; z: number; }; }; } export declare class GlyphGeometryBuilder { private cache; private tessellator; private extruder; private fontId; private cacheKeyPrefix; private curveFidelityConfig?; private curveSteps?; private geometryOptimizationOptions?; private clusterer; private collector; private drawCallbacks; private loadedFont; private wordCache; private contourCache; private clusteringCache; private emptyGlyphs; private clusterPositions; private clusterContoursScratch; private taskScratch; constructor(cache: Cache, loadedFont: LoadedFont); getOptimizationStats(): import("../geometry/PathOptimizer").OptimizationStats; setCurveFidelityConfig(config?: CurveFidelityConfig): void; setCurveSteps(curveSteps?: number): void; setGeometryOptimization(options?: GeometryOptimizationOptions): void; setFontId(fontId: string): void; private updateCacheKeyPrefix; private getGeometryConfigSignature; buildInstancedGeometry(clustersByLine: GlyphCluster[][], depth: number, removeOverlaps: boolean, isCFF: boolean, scale: number, separateGlyphs?: boolean, coloredTextIndices?: Set): InstancedTextGeometry; private getClusterKey; private createGlyphInfo; private getContoursForGlyph; private tessellateGlyphCluster; private extrudeAndPackage; private tessellateGlyph; private updatePlaneBounds; getCacheStats(): import("../../utils/Cache").CacheStats; clearCache(): void; }