/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface TransitionProps {
    enter?: string;
    appear?: string;
    leave?: string;
    visible: boolean;
    onEnter?: () => void;
    onLeave?: () => void;
    onShow?: () => void;
    onHide?: () => void;
}
export interface TransitionState {
    selfVisible: boolean;
    inTransition: boolean;
    wrapperWidth: number;
    wrapperHeight: number;
}
declare class Transition extends React.PureComponent<TransitionProps, TransitionState> {
    static propTypes: {
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        enter: PropTypes.Requireable<string>;
        appear: PropTypes.Requireable<string>;
        leave: PropTypes.Requireable<string>;
        visible: PropTypes.Validator<boolean>;
        onEnter: PropTypes.Requireable<(...args: any[]) => any>;
        onLeave: PropTypes.Requireable<(...args: any[]) => any>;
        onShow: PropTypes.Requireable<(...args: any[]) => any>;
        onHide: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        enter: string;
        appear: string;
        leave: string;
    };
    private wrapperEle;
    constructor(props: TransitionProps);
    componentDidMount(): void;
    componentDidUpdate(preProps: TransitionProps): void;
    private updateVisible;
    private onTransitionFinishHandler;
    render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)>) | (new (props: any) => React.Component<any, any, any>)>;
}
export default Transition;
