import { AnimationClip, Object3D } from 'three/webgpu'; /** * Gathers every animation clip below a root, bound to the objects it animates. * * Both exporters take a root and its clips separately, and resolve each track * against the subtree they are handed. Clips therefore reach a file only when * they are passed at the top level -- ones sitting on a descendant's * `Object3D.animations`, or held by a component, are invisible to the export. * * Two places are read, because that is where clips end up: `Object3D.animations`, * which the asset loader fills for a plain load, and the `animations` field of a * component, which is where {@link ModelComponent} keeps them. Components are not * part of the graph, so a traversal alone never reaches them. Matched * structurally, so a component added later that carries clips needs no change * here. * * Each clip is bound to the objects of the asset that holds it, which is why this * cannot live in the exporter: only the holder knows which objects its clips * belong to, and by the time a whole scene is handed over, that pairing is gone. * * @param root - The object to collect below. */ export declare function collectAnimations(root: Object3D): AnimationClip[];