import { ContainerRef } from '@cleartrip/ct-design-container'; import { Styles } from '@cleartrip/ct-design-types'; import type { IAnimatedStyleClass } from './AnimatedStyle/IAnimatedStyleClass'; export interface IAnimatedStyleConfig { root?: Styles[]; } declare enum ReduceMotion { System = "system", Always = "always", Never = "never" } export type SpringConfig = { stiffness?: number; overshootClamping?: boolean; restDisplacementThreshold?: number; restSpeedThreshold?: number; velocity?: number; reduceMotion?: ReduceMotion; } & ({ mass?: number; damping?: number; duration?: never; dampingRatio?: never; clamp?: never; } | { mass?: never; damping?: never; duration?: number; dampingRatio?: number; clamp?: { min?: number; max?: number; }; }); export interface IAnimatedComponentProps { children?: React.ReactNode; animated: IAnimatedStyleClass; styleConfig?: IAnimatedStyleConfig; onTransitionEnd?: () => void; plugin?: 'spring' | 'linear'; collapsable?: boolean; } export interface IAnimationTransformValues extends Record { translateX?: number; translateY?: number; opacity?: number; scale?: number; height?: number | string; width?: number | string; top?: number | string; left?: number | string; color?: string; backgroundColor?: string; } export interface ISpringConfig { mass?: number; tension?: number; friction?: number; } export interface IAnimationConfig { duration?: number; delay?: number; immediate?: boolean; timingFunction?: 'ease-in-out' | 'ease-in' | 'ease-out' | 'linear'; animationType?: 'spring' | 'linear'; springConfig?: ISpringConfig; onComplete?: () => void; curveAnimation?: 'easing-quad' | 'easing-cubic' | 'easing-quart' | 'easing-quint' | 'easing-expo' | 'easing-back' | 'easing-elastic' | 'easing-bounce'; } export interface IAnimationKeyframes { from: IAnimationTransformValues; to: IAnimationTransformValues; } export interface IAnimationOptions { from?: IAnimationTransformValues; to?: IAnimationTransformValues; config?: IAnimationConfig; } export interface IAnimatedRef { start?: (animatedStyle?: IAnimationOptions) => void; } export interface IAnimatedStyle { top?: number | string; left?: number | string; color?: string; backgroundColor?: string; height?: number | string; width?: number | string; opacity?: number; transform?: { translateX?: number; translateY?: number; scale?: number; }[]; } export interface AnimationController { start(animatedStyle?: IAnimationOptions, customElementRef?: React.MutableRefObject): void; } export type AnimatedStyleWithController = [IAnimatedStyleClass, AnimationController]; export {}; //# sourceMappingURL=type.d.ts.map