import { Component, SyntheticEvent, ReactNode } from 'react';
import { DataAttributes } from '../../utils/types';
import './Panel.less';
declare type PanelProps = {
    /**
     * Panel title.
     * @since 0.0.37
     */
    title?: ReactNode;
    /**
     * A slot for buttons or links in the header.
     * @since 2.5.0
     */
    extra?: ReactNode;
    /**
     * Is panel collapsible.
     * @since 0.0.35
     */
    collapsible?: boolean;
    /**
     * Whether collapsed or not.
     * @since 0.0.35
     */
    collapsed?: boolean;
    /**
     * A callback executed when the panel is expanding or collapsing.
     * @since 0.0.35
     */
    onToggle?: (collapsed: boolean) => void;
    /**
     * Content of the panel.
     * @since 0.0.47
     */
    children?: ReactNode;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
} & DataAttributes;
declare type PanelState = {
    collapsed: boolean;
    prevPropsCollapsed: boolean;
};
/**
 * `Panel` component is used for visually grouping some content.
 * @since 0.0.35
 */
declare class Panel extends Component<PanelProps, PanelState> {
    static defaultProps: {
        collapsible: boolean;
        collapsed: boolean;
        baseClassName: string;
    };
    constructor(props: PanelProps);
    static getDerivedStateFromProps(props: PanelProps, state: PanelState): {
        collapsed: boolean | undefined;
        prevPropsCollapsed: boolean | undefined;
    } | null;
    handleToggle: (e: SyntheticEvent<HTMLElement, MouseEvent>) => void;
    render(): JSX.Element;
}
export default Panel;
