import * as React from 'react';
import { AccordionItemProps } from './accordionItem';
export interface AccordionProps {
    onStartResize?: (direction: 'vertical' | 'horizontal') => void;
    onResize?: (direction: 'vertical' | 'horizontal') => void;
    /** AccordionItem[] */
    children?: React.ReactElement<AccordionItemProps> | ReadonlyArray<React.ReactElement<AccordionItemProps>>;
    direction?: 'vertical' | 'horizontal';
    animationDuration?: number;
}
interface State {
    /**
     * Items' sizes in pixels.
     *
     * Unset until first resize or toggle initiated by user.
     */
    readonly sizes: number[];
    /**
     * Items' sizes in percent.
     */
    readonly percents: string[];
    /**
     * Per-item collapsed state: true if corresponding item is collapsed;
     * otherwise false.
     */
    readonly collapsed: boolean[];
    readonly resizing: boolean;
}
type DefaultPropKeys = 'direction' | 'animationDuration';
export declare class Accordion extends React.Component<AccordionProps, State> {
    static defaultProps: Required<Pick<AccordionProps, DefaultPropKeys>>;
    private element;
    private items;
    private dragOrigin;
    private defaultProps;
    private isScrollable;
    constructor(props: AccordionProps);
    componentDidMount(): void;
    componentDidUpdate(prevProps: AccordionProps, prevState: State): void;
    private get isVertical();
    private clientSize;
    private offsetSize;
    private updateSizes;
    render(): import("react/jsx-runtime").JSX.Element;
    private onElementMount;
    private renderItems;
    private onBeginDragHandle;
    private onEndDragHandle;
    private computeEffectiveItemSizes;
    private sizeWhenCollapsed;
    private onDragHandle;
    private onItemChangeCollapsed;
}
export {};
//# sourceMappingURL=accordion.d.ts.map