import React from 'react';
import PropTypes from 'prop-types';
import { TransitionProps } from './Transition';
export declare enum DIMENSION {
    HEIGHT = "height",
    WIDTH = "width"
}
export interface CollapseProps extends TransitionProps {
    /** The dimension used when collapsing */
    dimension?: DIMENSION | (() => DIMENSION);
    /** Function that returns the height or width of the animating DOM node */
    getDimensionValue?: (dimension: DIMENSION, elem: Element) => number;
    /** ARIA role of collapsible element */
    role?: string;
}
declare function defaultGetDimensionValue(dimension: DIMENSION, elem: HTMLElement): number;
declare class Collapse extends React.Component<CollapseProps> {
    static propTypes: {
        dimension: PropTypes.Requireable<any>;
        getDimensionValue: PropTypes.Requireable<(...args: any[]) => any>;
        role: PropTypes.Requireable<string>;
        animation: PropTypes.Requireable<boolean>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        className: PropTypes.Requireable<string>;
        in: PropTypes.Requireable<boolean>;
        unmountOnExit: PropTypes.Requireable<boolean>;
        transitionAppear: PropTypes.Requireable<boolean>;
        timeout: PropTypes.Requireable<number>;
        exitedClassName: PropTypes.Requireable<string>;
        exitingClassName: PropTypes.Requireable<string>;
        enteredClassName: PropTypes.Requireable<string>;
        enteringClassName: PropTypes.Requireable<string>;
        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>;
    };
    static displayName: string;
    static defaultProps: {
        timeout: number;
        dimension: DIMENSION;
        exitedClassName: string;
        exitingClassName: string;
        enteredClassName: string;
        enteringClassName: string;
        getDimensionValue: typeof defaultGetDimensionValue;
    };
    transitionRef: React.RefObject<any>;
    constructor(props: any);
    getTransitionInstance(): any;
    handleEnter: (elem: HTMLElement) => void;
    handleEntering: (elem: HTMLElement) => void;
    handleEntered: (elem: HTMLElement) => void;
    handleExit: (elem: HTMLElement) => void;
    handleExiting: (elem: HTMLElement) => void;
    dimension(): DIMENSION;
    render(): JSX.Element;
}
export default Collapse;
