import { HTMLAttributes } from 'react'; import { TransitionDurationPresetsKeys } from './constants'; import { easings } from '@react-spring/web'; import { AnimationConfig } from '@react-spring/core/dist/declarations/src/AnimationConfig'; import { EasingFunction } from '@react-spring/types'; export interface BaseTransitionProps extends HTMLAttributes { in?: boolean; /** * Delay animations */ delay?: number; /** * React Spring config presets * @default 'default' */ config?: TransitionConfig; /** * Duration (Optional) * If set will ignore config preset, and use a custom duration * @default undefined */ duration?: TransitionDuration; /** * Easing (Optional) * A ReactSpring easing function name, or a custom function * @default undefined */ easing?: TransitionEasing; /** * Play enter animation on mount * @default false */ appear?: boolean; /** * Unmounts objects once left * @default false */ unmountOnExit?: boolean; /** * Disables animation * @default false */ immediate?: boolean; children?: any; } export declare type TransitionConfig = 'default' | 'gentle' | 'wobbly' | 'stiff' | 'slow' | 'molasses' | Partial; export declare type TransitionDuration = typeof TransitionDurationPresetsKeys | number; export declare type TransitionEasing = keyof typeof easings | EasingFunction;