import { BufferGeometry, InstancedBufferAttribute, InstancedMesh, Material, Matrix4, Object3D, OrthographicCamera, PerspectiveCamera, Ray } from 'three'; export declare class InstancedLods extends Object3D { readonly type = "InstancedLods"; readonly isInstancedLods = true; readonly isLOD = true; readonly autoUpdate = true; static isUpdateEnabled: boolean; static isEnabled: boolean; needUpdate: boolean; meshes: InstancedMesh[]; instanceMatrix: Float32Array; originalAttributes: Map; private readonly lastCameraPosition; private lastCameraZoom; count: number; private readonly distances; private boundsTree; private pickExpandRadius; private readonly lodsCount; private readonly counters; private updateCounter; constructor(geometries: BufferGeometry[], distances: number[], material: Material, count: number); private addAttribute; update(camera: PerspectiveCamera | OrthographicCamera, force?: boolean): void; computeBoundingBox(): void; buildBoundsTree(): void; /** * Uses the spatial BVH of instance centers to return instance indices whose expanded bounds the ray may hit. */ raycastInstances(ray: Ray): number[]; setMatrices(matrices: Float32Array, setToLods?: boolean): void; setMatrixAt(index: number, matrix: Matrix4, setToLods?: boolean): void; getMatrixAt(index: number, matrix?: Matrix4 | undefined): Matrix4; }