/// <reference types="react" />
import { EndHandler, EnterHandler, ExitHandler, TransitionProps as TProps, UNMOUNTED, EXITED, ENTERING, ENTERED, EXITING } from 'react-transition-group/Transition';
export declare type TransitionStatus = typeof ENTERING | typeof ENTERED | typeof EXITING | typeof EXITED | typeof UNMOUNTED;
export interface TransitionProps {
    in?: boolean;
    addEndListener?: EndHandler<any>;
    onEnter?: EnterHandler<any>;
    onEntering?: EnterHandler<any>;
    onEntered?: EnterHandler<any>;
    onExit?: ExitHandler<any>;
    onExiting?: ExitHandler<any>;
    onExited?: ExitHandler<any>;
    unmountOnExit?: boolean;
    timeout?: TProps['timeout'];
    transition?: string;
    children: (styles: React.CSSProperties) => React.ReactNode;
    styles: TransitionStyles;
}
export declare type TransitionStyleState = 'init' | TransitionStatus;
export declare type TransitionStyles = {
    [K in TransitionStyleState]?: React.CSSProperties;
};
export declare type Placement = 'left' | 'right' | 'bottom' | 'top';
interface Timeout {
    timeout?: number;
}
export interface ScaleSettings extends Timeout {
    initialScale?: number;
}
export interface SlideSettings extends Timeout {
    initialOffset?: string;
    placement?: Placement;
}
export declare type SlideProps = Omit<TransitionProps, 'styles' | 'timeout'> & SlideSettings;
export declare type ScaleFadeProps = Omit<TransitionProps, 'styles' | 'timeout'> & ScaleSettings;
export declare type SlideFadeProps = Omit<TransitionProps, 'styles' | 'timeout'> & SlideSettings;
export declare type FadeProps = Omit<TransitionProps, 'styles' | 'timeout'> & Timeout;
export {};
