import * as React from 'react';
import * as PropTypes from 'prop-types';
import { AnimationInterface } from './AnimationInterface';
/**
 * Represents the props of the child Animation elements.
 */
export interface AnimationChildProps extends AnimationInterface {
    /**
     * Controlled by `TransitionGroup` if present. Otherwise, sets the state of the enter or exit Animations.
     */
    in?: boolean;
    /**
     * @hidden
     */
    style?: any;
    /**
     * @hidden
     */
    className?: string;
    /**
     * Specifies the transition class which will be applied on the appear, enter, and exit transition.
     */
    transitionName: string;
    /**
     * Specifies the style which will be applied when the Animation reaches its entering state.
     */
    animationEnteringStyle?: any;
    /**
     * Specifies the style which will be applied when the Animation reaches its entered state.
     */
    animationEnteredStyle?: any;
    /**
     * Specifies the style which will be applied when the Animation reaches its exiting state.
     */
    animationExitingStyle?: any;
    /**
     * Specifies the style which will be applied when the Animation reaches its exited state.
     */
    animationExitedStyle?: any;
}
export declare class AnimationChild extends React.Component<AnimationChildProps, {}> {
    /**
     * @hidden
     */
    static propTypes: {
        in: PropTypes.Requireable<boolean>;
        children: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
        transitionName: PropTypes.Validator<string>;
        className: PropTypes.Requireable<string>;
        appear: PropTypes.Requireable<boolean>;
        enter: PropTypes.Requireable<boolean>;
        exit: PropTypes.Requireable<boolean>;
        transitionEnterDuration: PropTypes.Validator<number>;
        transitionExitDuration: PropTypes.Validator<number>;
        mountOnEnter: PropTypes.Requireable<boolean>;
        unmountOnExit: PropTypes.Requireable<boolean>;
        animationEnteringStyle: PropTypes.Requireable<object>;
        animationEnteredStyle: PropTypes.Requireable<object>;
        animationExitingStyle: PropTypes.Requireable<object>;
        animationExitedStyle: PropTypes.Requireable<object>;
    };
    /**
     * @hidden
     */
    static defaultProps: {
        mountOnEnter: boolean;
        unmountOnExit: boolean;
        onEnter: () => void;
        onEntering: () => void;
        onEntered: () => void;
        onExit: () => void;
        onExiting: () => void;
        onExited: () => void;
        onAfterExited: () => void;
        animationEnteringStyle: {};
        animationEnteredStyle: {};
        animationExitingStyle: {};
        animationExitedStyle: {};
    };
    private elementRef;
    /**
     * The element that is being animated.
     */
    get element(): HTMLDivElement | null;
    /**
     * @hidden
     */
    render(): JSX.Element;
}
