/// <reference types="react" />
import * as PropTypes from 'prop-types';
import { Style } from 'jss';
import { CSSTransitionProps } from 'react-transition-group/CSSTransition';
export declare type TransitionClassProps = 'root' | 'fade' | 'zoom' | 'slide' | 'collapse' | 'grow';
export declare type TransitionType = 'fade' | 'zoom' | 'slide' | 'collapse' | 'grow' | 'custom';
export interface TransitionProps extends Omit<CSSTransitionProps, 'in'> {
    children: React.ReactElement;
    type?: TransitionType;
    visible?: boolean;
    wrapper?: boolean;
    custom?: Style;
}
export interface StyledContainerProps {
    children: React.ReactElement;
    forwardRef: React.Ref<HTMLDivElement>;
    type?: TransitionType;
    visible?: boolean;
    wrapper?: boolean;
    wrapperHeight: number;
    setWrapperHeight: React.Dispatch<number>;
    custom?: Style;
}
export declare const TransitionPropTypes: {
    children: PropTypes.Validator<PropTypes.ReactElementLike>;
    type: PropTypes.Requireable<TransitionType>;
    visible: PropTypes.Requireable<boolean>;
    wrapper: PropTypes.Requireable<boolean>;
    custom: PropTypes.Requireable<any>;
    mountOnEnter: PropTypes.Requireable<boolean>;
    unmountOnExit: PropTypes.Requireable<boolean>;
    appear: PropTypes.Requireable<boolean>;
    enter: PropTypes.Requireable<boolean>;
    exit: PropTypes.Requireable<boolean>;
    timeout: PropTypes.Requireable<number | object>;
    addEndListener: PropTypes.Requireable<(...args: any[]) => any>;
    onEnter: PropTypes.Requireable<(...args: any[]) => any>;
    onEntering: PropTypes.Requireable<(...args: any[]) => any>;
    onEntered: PropTypes.Requireable<(...args: any[]) => any>;
    onExit: PropTypes.Requireable<(...args: any[]) => any>;
    onExiting: PropTypes.Requireable<(...args: any[]) => any>;
    onExited: PropTypes.Requireable<(...args: any[]) => any>;
};
