1import * as React from "react";
2import { AbstractPureComponent2 } from "../../common";
3import { Props } from "../../common/props";
4export declare type CollapseProps = ICollapseProps;
5/** @deprecated use CollapseProps */
6export interface ICollapseProps extends Props {
7    /**
8     * Component to render as the root element.
9     * Useful when rendering a `Collapse` inside a `<table>`, for instance.
10     *
11     * @default "div"
12     */
13    component?: React.ElementType;
14    /**
15     * Whether the component is open or closed.
16     *
17     * @default false
18     */
19    isOpen?: boolean;
20    /**
21     * Whether the child components will remain mounted when the `Collapse` is closed.
22     * Setting to true may improve performance by avoiding re-mounting children.
23     *
24     * @default false
25     */
26    keepChildrenMounted?: boolean;
27    /**
28     * The length of time the transition takes, in milliseconds. This must match
29     * the duration of the animation in CSS. Only set this prop if you override
30     * Blueprint's default transitions with new transitions of a different
31     * length.
32     *
33     * @default 200
34     */
35    transitionDuration?: number;
36}
37export interface ICollapseState {
38    /** The state the element is currently in. */
39    animationState: AnimationStates;
40    /** The height that should be used for the content animations. This is a CSS value, not just a number. */
41    height: string | undefined;
42    /**
43     * The most recent non-zero height (once a height has been measured upon first open; it is undefined until then)
44     */
45    heightWhenOpen: number | undefined;
46}
47/**
48 * `Collapse` can be in one of six states, enumerated here.
49 * When changing the `isOpen` prop, the following happens to the states:
50 * isOpen={true}  : CLOSED -> OPEN_START -> OPENING -> OPEN
51 * isOpen={false} : OPEN -> CLOSING_START -> CLOSING -> CLOSED
52 */
53export declare enum AnimationStates {
54    /**
55     * The body is re-rendered, height is set to the measured body height and
56     * the body Y is set to 0.
57     */
58    OPEN_START = 0,
59    /**
60     * Animation begins, height is set to auto. This is all animated, and on
61     * complete, the state changes to OPEN.
62     */
63    OPENING = 1,
64    /**
65     * The collapse height is set to auto, and the body Y is set to 0 (so the
66     * element can be seen as normal).
67     */
68    OPEN = 2,
69    /**
70     * Height has been changed from auto to the measured height of the body to
71     * prepare for the closing animation in CLOSING.
72     */
73    CLOSING_START = 3,
74    /**
75     * Height is set to 0 and the body Y is at -height. Both of these properties
76     * are transformed, and then after the animation is complete, the state
77     * changes to CLOSED.
78     */
79    CLOSING = 4,
80    /**
81     * The contents of the collapse is not rendered, the collapse height is 0,
82     * and the body Y is at -height (so that the bottom of the body is at Y=0).
83     */
84    CLOSED = 5
85}
86export declare class Collapse extends AbstractPureComponent2<CollapseProps, ICollapseState> {
87    static displayName: string;
88    static defaultProps: CollapseProps;
89    static getDerivedStateFromProps(props: CollapseProps, state: ICollapseState): {
90        animationState: AnimationStates;
91        height?: undefined;
92    } | {
93        animationState: AnimationStates;
94        height: string;
95    } | null;
96    state: ICollapseState;
97    private contents;
98    render(): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>;
99    componentDidMount(): void;
100    componentDidUpdate(): void;
101    private contentsRefHandler;
102    private onDelayedStateChange;
103}
104