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;