import type { BufferGeometry, InstancedMesh, Material } from "three"; import { Matrix4, Quaternion, Vector3 } from "three"; import type { InstancedMeshPool } from "./InstancedMeshPool"; export declare class InstancedMeshInstance { private readonly pool; private readonly position; private readonly quaternion; private readonly scale; private readonly matrix; private needsUpdateMatrixFromTransform; private needsUpdateTransformFromMatrix; private needsUpdateInstancedMatrixFromLocalMatrix; private handler; constructor(pool: InstancedMeshPool, geometry: BufferGeometry, material: Material, tag?: string); get isAlive(): boolean; static fromInstancedMesh(pool: InstancedMeshPool, mesh: InstancedMesh, tag?: string): InstancedMeshInstance[]; destroy(): void; setPosition(source: Vector3, flushTransform?: boolean): this; setPosition3f(x: number, y: number, z: number, flushTransform?: boolean): this; setQuaternion(source: Quaternion, flushTransform?: boolean): this; setQuaternion4f(x: number, y: number, z: number, w: number, flushTransform?: boolean): this; setScale(source: Vector3, flushTransform?: boolean): this; setScale3f(x: number, y: number, z: number, flushTransform?: boolean): this; setTransform(source: Matrix4, flushTransform?: boolean): this; flushTransform(): void; private updateTransformFromMatrix; private updateMatrixFromTransform; }