import { type SupportEvent } from "../other/types.ts";
type TimingInterface = (timeFraction: number) => number;
type DrawInterface = (progress: number) => void;
interface AnimateArgumentsInterface {
    /**
   * Длительность
   */ duration: number;
    /**
   * Тайминг функция анимации
   */ timing: TimingInterface;
    /**
   * Коллбэк, в который прокидывается прогресс [0, 1]
   */ draw: DrawInterface;
}
/**
 * Функция для js анимации
 */ export declare function animate({ duration, timing, draw }: AnimateArgumentsInterface): void;
export declare const animationEvent: SupportEvent<'animationend'>;
export declare const transitionEvent: SupportEvent<'transitionend'>;
/**
 * Ожидание окончания анимации на элементе
 *
 * @param listener Коллбэк окончания ожидания
 * @param fallbackTime Сколько ждать в мс если событие не поддерживается
 * @param el Элемент
 */ export declare function waitAnimationEnd(listener: (ev?: AnimationEvent) => any, fallbackTime: number, el?: GlobalEventHandlers): number | undefined;
/**
 * Прекращение ожидания окончания анимации на элементе
 *
 * @param listener Коллбэк окончания ожидания
 * @param handle то, что вернулось из ```waitAnimationEnd```
 * @param el Элемент
 */ export declare function cancelWaitAnimationEnd(listener: (ev?: AnimationEvent) => any, handle?: number, el?: GlobalEventHandlers): void;
/**
 * Ожидание окончания анимации перехода на элементе
 *
 * @param listener Коллбэк окончания ожидания
 * @param fallbackTime Сколько ждать в мс если событие не поддерживается
 * @param el Элемент
 */ export declare function waitTransitionEnd(el: GlobalEventHandlers, listener: (ev?: TransitionEvent) => any, fallbackTime: number): number | undefined;
/**
 * Прекращение ожидания окончания анимации перехода на элементе
 *
 * @param listener Коллбэк окончания ожидания
 * @param handle То, что вернулось из ```waitTransitionEnd```
 * @param el Элемент
 */ export declare function cancelWaitTransitionEnd(listener: (ev?: TransitionEvent) => any, handle?: number, el?: GlobalEventHandlers): void;
export { };
