import { Material, BufferAttribute, Box3, BufferGeometry } from 'three'; import { PrimitiveBatch } from './PrimitiveBatch.js'; import SpeckleMesh, { TransformStorage } from '../objects/SpeckleMesh.js'; import { DrawRanges } from './DrawRanges.js'; import { NodeRenderView } from '../tree/NodeRenderView.js'; import { type BatchUpdateRange, type DrawGroup, GeometryType } from './Batch.js'; export declare class MeshBatch extends PrimitiveBatch { protected primitive: SpeckleMesh; protected transformStorage: TransformStorage; private indexBuffer0; private indexBuffer1; private indexBufferIndex; protected drawRanges: DrawRanges; get bounds(): Box3; get minDrawCalls(): number; get triCount(): number; get pointCount(): number; get lineCount(): number; get geometryType(): GeometryType; get mesh(): SpeckleMesh; constructor(id: string, subtreeId: string, renderViews: NodeRenderView[], transformStorage: TransformStorage); protected getCurrentIndexBuffer(): BufferAttribute; protected getNextIndexBuffer(): BufferAttribute; protected shuffleMaterialOrder(a: DrawGroup, b: DrawGroup): number; protected updateGradientIndexBufferData(start: number, end: number, value: number): { minIndex: number; maxIndex: number; }; setDrawRanges(ranges: BatchUpdateRange[]): void; resetDrawRanges(): void; buildBatch(): Promise; protected makeMeshGeometry(indices: Uint32Array | Uint16Array, position: Float64Array | Float32Array, normals: Float32Array, batchIndices: Float32Array, color?: Float32Array): BufferGeometry; getRenderView(index: number): NodeRenderView | null; getMaterialAtIndex(index: number): Material | null; }