/** * ZUI Easing Functions * Animation easing based on ZeppOS design specifications */ import type { EasingFunction, EasingName } from '../core/types'; /** * Create cubic bezier easing function * @param x1 - First control point X * @param y1 - First control point Y * @param x2 - Second control point X * @param y2 - Second control point Y */ export declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): EasingFunction; /** * Linear easing (no easing) */ export declare const linear: EasingFunction; /** * Ease-In: Movement out of visible range * cubic-bezier(0.42, 0, 1, 1) */ export declare const easeIn: EasingFunction; /** * Ease-Out: Movement into visible range * cubic-bezier(0, 0, 0.58, 1) */ export declare const easeOut: EasingFunction; /** * Ease-In-Out: Movement within visible range * cubic-bezier(0.42, 0, 0.58, 1) */ export declare const easeInOut: EasingFunction; /** * Ease-In-Quad */ export declare const easeInQuad: EasingFunction; /** * Ease-Out-Quad */ export declare const easeOutQuad: EasingFunction; /** * Ease-In-Out-Quad */ export declare const easeInOutQuad: EasingFunction; /** * Ease-In-Cubic */ export declare const easeInCubic: EasingFunction; /** * Ease-Out-Cubic */ export declare const easeOutCubic: EasingFunction; /** * Ease-In-Out-Cubic */ export declare const easeInOutCubic: EasingFunction; /** * Bounce easing */ export declare const easeOutBounce: EasingFunction; /** * Elastic easing (for emphasis) */ export declare const easeOutElastic: EasingFunction; /** * Map of easing names to functions */ export declare const easingFunctions: Record; /** * Get easing function by name or return custom function * @param easing - Easing name or function */ export declare function getEasing(easing: EasingName | EasingFunction): EasingFunction; /** * Standard animation durations (in milliseconds) * Based on ZeppOS specifications */ export declare const animationDurations: { readonly shortest: 100; readonly short: 200; readonly medium: 300; readonly long: 400; }; export type AnimationDuration = keyof typeof animationDurations; /** * Get animation duration by key or return numeric value */ export declare function getDuration(duration: AnimationDuration | number): number; /** * Calculate deceleration curve for crown scroll stop * @param velocity - Current scroll velocity * @param friction - Friction coefficient (0-1) */ export declare function getDecelerationDuration(velocity: number, friction?: number): number; //# sourceMappingURL=easing.d.ts.map