import * as THREE from 'three'; interface BoundingBox { min: { x: number; y: number; z: number; }; max: { x: number; y: number; z: number; }; } interface VectorGlyphAttributes { glyphCenter: Float32Array; glyphIndex: Float32Array; glyphProgress: Float32Array; glyphLineIndex: Float32Array; glyphBaselineY: Float32Array; } interface GlyphRange { interiorIndexStart: number; interiorIndexCount: number; curveVertexStart: number; curveVertexCount: number; } interface VectorGeometryData { interiorPositions: Float32Array; interiorIndices: Uint32Array; curvePositions: Float32Array; fillPositions: Float32Array; fillIndices: Uint32Array; glyphRanges: GlyphRange[]; interiorGlyphAttrs?: VectorGlyphAttributes; curveGlyphAttrs?: VectorGlyphAttributes; fillGlyphAttrs?: VectorGlyphAttributes; planeBounds: BoundingBox; stats: { glyphCount: number; contourCount: number; interiorTriangleCount: number; curveTriangleCount: number; }; } interface VectorMeshOptions { color?: THREE.ColorRepresentation; positionNode?: any; colorNode?: any; center?: boolean; } interface VectorMeshes { group: THREE.Group; interiorMesh: THREE.Object3D; curveMesh: THREE.Object3D; fillMesh: THREE.Mesh; interiorGeometry: THREE.BufferGeometry; curveGeometry: THREE.BufferGeometry; fillGeometry: THREE.BufferGeometry; setOffset(x: number, y: number, z?: number): void; updateMaterials(options?: VectorMeshOptions): void; dispose(): void; } declare const loopBlinnFragment: any; declare function createVectorMeshes(data: VectorGeometryData, options?: VectorMeshOptions | THREE.ColorRepresentation): VectorMeshes; export { VectorMeshOptions, VectorMeshes, createVectorMeshes, loopBlinnFragment };