import { PptxAnimationPreset } from 'pptx-viewer-core'; import { AnimationGroup } from 'pptx-viewer-shared'; import { EditorState } from './editor-state.svelte'; /** * Element-animation actions for the ribbon's Animations tab, split out of * `EditorState` to keep it under the repo's 300-LOC budget. * * Animation data lives on the SLIDE (`PptxSlide.animations`, keyed by * `elementId`), not on the element itself, matching how the presentation * playback state machine reads it (`buildClickGroups` in * `presentation/animation-playback.svelte.ts`). Both actions target the * currently selected element and route through the shared * `animation-authoring.ts` "coarse group preset" model (`applyAnimationPreset` * / `removeElementAnimation`), the same one the Vue/vanilla ribbons use: * applying a preset sets one of entrance/emphasis/exit without touching the * others; remove drops the whole entry. Both mutations go through * `EditorState.commitSlides`, so they are history-integrated (undoable). */ export declare class EditorAnimationController { #private; constructor(editor: EditorState); addAnimation(group: AnimationGroup, preset: PptxAnimationPreset): void; removeAnimation(): void; /** * Apply a catalogue motion path (ribbon gallery / inspector select) to the * selection. A path is NOT one of the three preset buckets: it upserts the * `motionPath` field on the same animation entry, so an element can travel a * path AND fade in, exactly as PowerPoint allows. */ applyMotionPath(presetId: string): void; /** * Write a raw path string (the canvas end-handle drag), bypassing the * catalogue: a dragged path no longer matches any preset, and pinning it to * one would silently discard the drag. */ setMotionPath(path: string): void; /** Drop the motion path, and the whole entry when nothing else is left on it. */ clearMotionPath(): void; } //# sourceMappingURL=editor-animation-controller.d.ts.map