import { type EntityAnimationTrack, type SceneAnimationClipV1, type SceneDocumentData, type Vector3Value } from "@skenora/contracts"; export interface SceneExplosionOptions { /** Stable prefix for the generated tracks and two synchronized clips. */ id?: string; durationMs?: number; } export interface SceneExplosion { id: string; entityIds: readonly string[]; durationMs: number; expandClipId: string; collapseClipId: string; animationTracks: Record; animationClips: Record; } /** Explicit parent-local displacements. No scene writes, source-part guessing or extra animation engine. */ export declare function createSceneExplosion(document: Readonly, offsets: Readonly>, options?: SceneExplosionOptions): SceneExplosion; export declare function describeSceneExplosions(): { readonly authoring: "Ordinary position tracks and two finite synchronized clips; one guarded Editor transaction"; readonly limits: { readonly parts: 64; readonly durationMs: readonly [1, 60000]; }; readonly placement: readonly ["explicit parent-local offsets", "observed world radial", "observed world-axis layers"]; readonly playback: readonly ["expand", "collapse", "progress", "pause", "resume", "reset"]; readonly requires: readonly ["explicit document entity IDs", "ready observed geometry for automatic planning", "animation clip playback; explicit Editor preview"]; readonly limitations: readonly ["No automatic decomposition of a monolithic imported mesh", "No collision or mechanical constraints", "Do not select both an ancestor and its descendant"]; }; //# sourceMappingURL=explosion.d.ts.map