import type { IPoint } from '../Core/Types';
/**
 * Default animation duration in milliseconds.
 *
 * @public
 */
export declare const DEFAULT_ANIMATION_DURATION = 250;
/**
 * Default animation easing function.
 *
 * @public
 */
export declare const DEFAULT_ANIMATION_EASING = "cubic-bezier(0.25, 0.8, 0.25, 1)";
/**
 * Animate element to a specific position using Web Animations API.
 *
 * @param element - Element to animate.
 * @param from - Start position.
 * @param to - End position.
 * @param duration - Animation duration in ms.
 * @param easing - Animation easing function.
 * @returns Animation instance.
 *
 * @public
 */
export declare function animatePosition(element: HTMLElement, from: IPoint, to: IPoint, duration?: number, easing?: string): Animation;
/**
 * Animate element back to its original position.
 *
 * @param element - Element to animate.
 * @param currentPosition - Current position.
 * @param duration - Animation duration in ms.
 * @param easing - Animation easing function.
 * @returns Animation instance.
 *
 * @public
 */
export declare function animateToOriginalPosition(element: HTMLElement, currentPosition: IPoint, duration?: number, easing?: string): Animation;
/**
 * Animate element opacity.
 *
 * @param element - Element to animate.
 * @param from - Start opacity (0-1).
 * @param to - End opacity (0-1).
 * @param duration - Animation duration in ms.
 * @param easing - Animation easing function.
 * @returns Animation instance.
 *
 * @public
 */
export declare function animateOpacity(element: HTMLElement, from: number, to: number, duration?: number, easing?: string): Animation;
/**
 * Fade in an element.
 *
 * @param element - Element to fade in.
 * @param duration - Animation duration in ms.
 * @returns Animation instance.
 *
 * @public
 */
export declare function fadeIn(element: HTMLElement, duration?: number): Animation;
/**
 * Fade out an element.
 *
 * @param element - Element to fade out.
 * @param duration - Animation duration in ms.
 * @returns Animation instance.
 *
 * @public
 */
export declare function fadeOut(element: HTMLElement, duration?: number): Animation;
/**
 * Cancel all animations on an element.
 *
 * @param element - Element to cancel animations on.
 *
 * @public
 */
export declare function cancelAnimations(element: HTMLElement): void;
/**
 * Wait for an animation to finish.
 *
 * @param animation - Animation to wait for.
 * @returns Promise that resolves when animation finishes.
 *
 * @public
 */
export declare function waitForAnimation(animation: Animation): Promise<void>;
/**
 * Wait for multiple animations to finish.
 *
 * @param animations - Animations to wait for.
 * @returns Promise that resolves when all animations finish.
 *
 * @public
 */
export declare function waitForAnimations(animations: Array<Animation>): Promise<void>;
/**
 * Get current animated transform value.
 *
 * @param element - Element to read from.
 * @returns Current position from active animations or committed style.
 *
 * @public
 */
export declare function getCurrentAnimatedPosition(element: HTMLElement): IPoint;
//# sourceMappingURL=AnimationUtils.d.ts.map