import { default as React } from 'react';
import { TrackingAttributes } from '../../utils/analytics/googleAnalyticsUtils';
type ChildrenType = React.ReactNode | ((isOpen: boolean) => React.ReactNode | JSX.Element);
export type ExpanderPanelProps = {
    /**
     * The title to be shown in the expander header.
     */
    title: string | React.ReactNode;
    /**
     * Component visual or contextual style variants.
     *
     * @default 'blank'
     */
    bsStyle?: 'blank' | 'default' | 'separator' | 'primary' | 'secondary' | 'info' | 'warning' | 'danger' | 'success';
    /**
     * Defines if the icon will be align left, otherwise it is aligned right.
     *
     * @default false
     */
    iconLeft?: boolean;
    /**
     * Defines if the panel will be opened or closed by default.
     * The open/closed state will be handled internally.
     *
     * @default false
     */
    open?: boolean;
    /**
     * It unmounts the body component (remove it from the DOM) when it is collapsed.
     * Set it to false to avoid the unmount.
     *
     * @default true
     */
    unmountOnExit?: boolean;
    /**
     * Callback function for when the header is clicked and the expander toggles.
     *
     * @param isOpen
     * @returns
     */
    onToggle?: (isOpen: boolean) => void;
    /**
     * Callback fired after the component has expanded.
     */
    onEntered?: VoidFunction;
    /**
     * Callback fired after the component has collapsed.
     */
    onExited?: VoidFunction;
    /**
     * Callback fired when the animation starts for either expand or collapse.
     */
    onAnimationStart?: VoidFunction;
    /**
     * Additional classes to be set on the panel header.
     */
    headerClassName?: string;
    /**
     * Additional classes to be set on the header title.
     */
    titleClassName?: string;
    /**
     * Additional classes to be set on the panel body.
     */
    bodyClassName?: string;
    /**
     * Additional classes added to the chevron icon
     */
    iconClassName?: string;
    /**
     * Additional classes to be set on the wrapper element.
     */
    className?: string;
    /**
     * Optional tracking attributes (e.g. from `getTrackingAttributes`) added to the panel header element.
     */
    trackingAttributes?: TrackingAttributes;
    /**
     * Any element to be rendered inside the panel body.
     * Providing a function enables the render prop approach.
     *
     * See {@link https://reactjs.org/docs/render-props.html}
     *
     * The function gets the
     * `isOpen` state passed and is responsible for rendering the custom content.
     */
    children?: ChildrenType;
};
declare const ExpanderPanel: (props: ExpanderPanelProps) => import("react/jsx-runtime").JSX.Element;
export default ExpanderPanel;
