import { type AnyNodeId, type Interactive } from '@pascal-app/core'; import { type RefObject } from 'react'; import { type AnimationAction, type AnimationClip, Object3D } from 'three'; /** Actions keyed by the clip names the script wrote (`open`, `loop`, `Princess twirl`). */ export type ScriptedClipActions = Record; /** Own the action cache so replacing clips cannot retain bindings to an old artifact. */ export declare function useClipActions(clips: AnimationClip[], root: RefObject): Record; /** * An authored object's clips, each driven by its own toggle: an open-close * effect plays `open` once and holds, closing plays `close` or `open` reversed; * an ambient effect plays its clip while its toggle is on (always, for `loop`). * Shared by the live item renderer and the baked viewer. */ export declare function ScriptedClips({ nodeId, interactive, actions, }: { nodeId: AnyNodeId; interactive: Interactive; actions: ScriptedClipActions; }): import("react").JSX.Element; //# sourceMappingURL=scripted-clips.d.ts.map