import type { AnimateUpdates } from "./types.js"; import { Feature } from "../feature.js"; import { type MotionState } from "../../state/index.js"; import type { $Transition, AnimationFactory, Options } from "../../types/index.js"; declare const STATE_TYPES: readonly ["initial", "animate", "whileInView", "whileHover", "whilePress", "whileDrag", "whileFocus", "exit"]; export type StateType = (typeof STATE_TYPES)[number]; export declare class AnimationFeature extends Feature { unmountControls?: () => void; constructor(state: MotionState); updateAnimationControlsSubscription(): void; animateUpdates: AnimateUpdates; executeAnimations({ factories, getChildAnimations, transition, controlActiveState, isExit, }: { factories: AnimationFactory[]; getChildAnimations: () => Promise; transition: $Transition | undefined; controlActiveState: Partial> | undefined; isExit: boolean; }): Promise | (() => Promise); /** * Setup child animations */ setupChildAnimations(transition: $Transition | undefined, controlActiveState: Partial> | undefined): { getChildAnimations: () => Promise; } | { getChildAnimations: () => Promise; }; createAnimationFactories(prevTarget: Record, animationOptions: $Transition, controlDelay: number): AnimationFactory[]; resolveStateAnimation({ controlActiveState, directAnimate, directTransition, }: { controlActiveState: Partial> | undefined; directAnimate: Options["animate"]; directTransition: Options["transition"] | undefined; }): import("motion-dom").Transition & { layout?: $Transition; }; /** * Subscribe any provided AnimationControls to the component's VisualElement */ mount(): void; update(): void; unmount(): void; } export {};