import { Logger } from "../core/logger";
/**
 * Animation function signature.
 * Receives gsap instance, target element, and root SVG element.
 * Returns a Promise that resolves when animation completes.
 */
export type AnimationFunction = (gsap: any, targetEl: SVGElement, rootEl: SVGElement) => Promise<void>;
/**
 * Factory for creating animation functions from code strings.
 * This wraps user-provided GSAP animation code into executable functions.
 */
export declare class AnimationFactory {
    private _logger;
    private _gsap;
    constructor(gsap: any, logger: Logger);
    /**
     * Create an animation function from a code string.
     *
     * @param code - The JavaScript code as a string that uses GSAP
     * @param label - Optional label for debugging
     * @returns An animation function that returns a Promise
     */
    createAnimation(code: string, label?: string): AnimationFunction;
    /**
     * Create an animation function from an ID reference.
     * The ID should exist in the animations catalog.
     *
     * @param animationId - The ID of the animation (with or without # prefix)
     * @param animationsCatalog - The catalog of animations from settings
     * @param label - Optional label for debugging
     * @returns An animation function or undefined if not found
     */
    createAnimationFromId(animationId: string, animationsCatalog: Record<string, string>, label?: string): AnimationFunction | undefined;
    /**
     * Resolve an animation property value to an animation function.
     * Handles both direct code strings and ID references.
     *
     * @param animationValue - Either a code string or an ID reference (starting with #)
     * @param animationsCatalog - The catalog of animations from settings
     * @param label - Optional label for debugging
     * @returns An animation function or undefined
     */
    resolveAnimation(animationValue: string | undefined, animationsCatalog: Record<string, string>, label?: string): AnimationFunction | undefined;
    /**
     * Create a no-op animation that resolves immediately.
     * Used when no animation is specified.
     */
    createNoOpAnimation(): AnimationFunction;
}
