import { Preset } from 'unocss';

/**
 * Options for customizing the easing preset.
 * 用于自定义缓动预设的选项。
 */
interface EasePresetOptions {
    /**
     * Prefix to be added to easing function names.
     * 要添加到缓动函数名称的前缀。
     *
     * @default 'ease-'
     */
    prefix?: string;
}

/**
 * These easing functions provide various cubic bezier curves that can be used for animations and transitions.
 * 这些缓动函数提供了各种可用于动画和过渡的贝塞尔曲线。
 * see https://easings.net for visual representation and usage examples.
 * 可以访问 https://easings.net 查看可视化表示和使用示例。
 */
declare const css = "ease";
declare const cssIn = "ease-in";
declare const cssOut = "ease-out";
declare const cssInOut = "ease-in-out";
/**
 * Easing function for smooth entrance.
 * 平滑入场的缓动函数。
 */
declare const inSine = "cubic-bezier(0.12, 0, 0.39, 0)";
declare const inCubic = "cubic-bezier(0.32, 0, 0.67, 0)";
declare const inQuint = "cubic-bezier(0.64, 0, 0.78, 0)";
declare const inCirc = "cubic-bezier(0.55, 0, 1, 0.45)";
declare const inQuad = "cubic-bezier(0.11, 0, 0.5, 0)";
declare const inQuart = "cubic-bezier(0.5, 0, 0.75, 0)";
declare const inExpo = "cubic-bezier(0.7, 0, 0.84, 0)";
declare const inBack = "cubic-bezier(0.36, 0, 0.66, -0.56)";
/**
 * Easing function for smooth exit.
 * 平滑退出的缓动函数。
 */
declare const outSine = "cubic-bezier(0.61, 1, 0.88, 1)";
declare const outCubic = "cubic-bezier(0.33, 1, 0.68, 1)";
declare const outQuint = "cubic-bezier(0.22, 1, 0.36, 1)";
declare const outCirc = "cubic-bezier(0, 0.55, 0.45, 1)";
declare const outQuad = "cubic-bezier(0.5, 1, 0.89, 1)";
declare const outQuart = "cubic-bezier(0.25, 1, 0.5, 1)";
declare const outExpo = "cubic-bezier(0.16, 1, 0.3, 1)";
declare const outBack = "cubic-bezier(0.34, 1.56, 0.64, 1)";
/**
 * Easing function for smooth entrance and exit.
 * 平滑入场和退出的缓动函数。
 */
declare const inOutSine = "cubic-bezier(0.37, 0, 0.63, 1)";
declare const inOutCubic = "cubic-bezier(0.65, 0, 0.35, 1)";
declare const inOutQuint = "cubic-bezier(0.83, 0, 0.17, 1)";
declare const inOutCirc = "cubic-bezier(0.85, 0, 0.15, 1)";
declare const inOutQuad = "cubic-bezier(0.45, 0, 0.55, 1)";
declare const inOutQuart = "cubic-bezier(0.76, 0, 0.24, 1)";
declare const inOutExpo = "cubic-bezier(0.87, 0, 0.13, 1)";
declare const inOutBack = "cubic-bezier(0.68, -0.6, 0.32, 1.6)";
/**
 * Easing functions for smooth animations and transitions.
 * 缓动函数用于实现平滑的动画和过渡效果。
 *
 */
declare const easing: {
    css: string;
    cssIn: string;
    cssOut: string;
    cssInOut: string;
    /**
     * Easing function for smooth entrance.
     * 平滑入场的缓动函数。
     */
    inSine: string;
    inCubic: string;
    inQuint: string;
    inCirc: string;
    inQuad: string;
    inQuart: string;
    inExpo: string;
    inBack: string;
    /**
     * Easing function for smooth exit.
     * 平滑退出的缓动函数。
     */
    outSine: string;
    outCubic: string;
    outQuint: string;
    outCirc: string;
    outQuad: string;
    outQuart: string;
    outExpo: string;
    outBack: string;
    /**
     * Easing function for smooth entrance and exit.
     * 平滑入场和退出的缓动函数。
     */
    inOutSine: string;
    inOutCubic: string;
    inOutQuint: string;
    inOutCirc: string;
    inOutQuad: string;
    inOutQuart: string;
    inOutExpo: string;
    inOutBack: string;
};

/**
 * Creates a preset that maps easing function names to transition timing functions.
 * 创建一个预设，将缓动函数名称映射到过渡时间函数。
 *
 * @param {EasePresetOptions} [options] - Options for configuring the easing preset.
 *                                      用于配置缓动预设的选项。
 * @returns {Preset} Returns a UnoCSS preset object.
 *                   返回 UnoCSS 预设对象。
 */
declare function presetEase({ prefix }?: EasePresetOptions): Preset<any>;

export { type EasePresetOptions, css, cssIn, cssInOut, cssOut, presetEase as default, easing, inBack, inCirc, inCubic, inExpo, inOutBack, inOutCirc, inOutCubic, inOutExpo, inOutQuad, inOutQuart, inOutQuint, inOutSine, inQuad, inQuart, inQuint, inSine, outBack, outCirc, outCubic, outExpo, outQuad, outQuart, outQuint, outSine, presetEase };
