import { AnimationDefinition, VisualElement, VisualElementAnimationOptions } from 'motion-dom'; declare const variantPriorityOrder: readonly ["animate", "whileInView", "whileFocus", "whileHover", "whilePress", "whileDrag", "exit"]; export type AnimationType = (typeof variantPriorityOrder)[number]; export interface AnimationTypeState { isActive: boolean; protectedKeys: Record; needsAnimating: Record; prevResolvedValues: Record; prevProp?: any; } declare function checkVariantsDidChange(prev: any, next: any): boolean; export interface AnimationStateAPI { animateChanges: (changedActiveType?: AnimationType) => Promise; setActive: (type: AnimationType, isActive: boolean) => Promise; setAnimateFunction: (fn: (visualElement: VisualElement) => (animations: any[]) => Promise) => void; getState: () => Record; reset: () => void; } interface DefinitionAndOptions { animation: AnimationDefinition; options?: VisualElementAnimationOptions; } /** * Type for the animate function that can be injected. * This allows the animation implementation to be provided by the framework layer. */ export type AnimateFunction = (animations: DefinitionAndOptions[]) => Promise; /** * Create animation state manager. * * Ported from motion-dom's createAnimationState. * The resolution logic mirrors motion-dom so upstream diffs are easy to apply. * Execution is Vue-specific (injected via setAnimateFunction). * * @param visualElement - The visual element instance (aligned with motion-dom signature) */ export declare function createAnimationState(visualElement: VisualElement): AnimationStateAPI; export { checkVariantsDidChange };