import * as THREE from "three"; type ObjectState = { local: number[]; pose: string; world: number[]; parent: THREE.Object3D | null; parentRevision: number; worldRevision: number; revision: number; signature: string; children: number[]; bounds: THREE.Box3; }; /** A cheap hierarchy scan detects edits; matrix products and bounds unions are incremental. * Call invalidate after writing raw buffers without setting attribute.needsUpdate. */ export declare class SceneGraphCache { private objects; private geometries; private visited; private clock; private seenGeometries; private identities; private identity; readonly metrics: { worldMatrices: number; bounds: number; geometries: number; }; begin(): void; invalidate(roots: THREE.Object3D[]): void; private world; private geometry; inspect(object: THREE.Object3D): ObjectState; } export {}; //# sourceMappingURL=scene-cache.d.ts.map