import { Box3, Material, Object3D, WebGLRenderer } from 'three'; import { NodeRenderView } from '../tree/NodeRenderView.js'; import { type Batch, type BatchUpdateRange, type DrawGroup, GeometryType } from './Batch.js'; import SpeckleInstancedMesh from '../objects/SpeckleInstancedMesh.js'; import { DrawRanges } from './DrawRanges.js'; export declare class InstancedMeshBatch implements Batch { id: string; subtreeId: string; renderViews: NodeRenderView[]; private geometry; batchMaterial: Material; mesh: SpeckleInstancedMesh; protected drawRanges: DrawRanges; private instanceTransformBuffer0; private instanceTransformBuffer1; private transformBufferIndex; private instanceGradientBuffer; private instanceObjectIdBuffer; private needsShuffle; get bounds(): Box3; get drawCalls(): number; get minDrawCalls(): number; get maxDrawCalls(): number; get triCount(): number; get vertCount(): number; get pointCount(): number; get lineCount(): number; get geometryType(): GeometryType; get renderObject(): Object3D; getCount(): number; get materials(): Material[]; get groups(): Array; constructor(id: string, subtreeId: string, renderViews: NodeRenderView[], webGL2: boolean); setBatchMaterial(material: Material): void; onUpdate(deltaTime: number): void; onRender(renderer: WebGLRenderer): void; /** Note: You can only set visibility on ranges that exist as draw groups! */ setVisibleRange(ranges: BatchUpdateRange[]): void; getVisibleRange(): BatchUpdateRange; getOpaque(): BatchUpdateRange; getDepth(): BatchUpdateRange; getTransparent(): BatchUpdateRange; getStencil(): BatchUpdateRange; setBatchBuffers(ranges: BatchUpdateRange[]): void; setDrawRanges(ranges: BatchUpdateRange[]): void; private cleanMaterials; private shuffleDrawGroups; resetDrawRanges(): void; private getCurrentTransformBuffer; private getNextTransformBuffer; private getCurrentGradientBuffer; private getCurrentObjectIndexBuffer; buildBatch(): Promise; getRenderView(index: number): NodeRenderView | null; getMaterialAtIndex(index: number): Material | null; getMaterial(rv: NodeRenderView): Material | null; private makeInstancedMeshGeometry; private updateGradientIndexBufferData; purge(): void; }