import * as React from 'react';
import { PropsWithChildren, ReactNode } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';

type ExpansionIconProps = {
    isExpanded?: boolean;
    className?: string;
};
declare const ExpansionIcon: ({ isExpanded, className }: ExpansionIconProps) => react_jsx_runtime.JSX.Element;
type IconBuilder = (expanded: boolean) => ReactNode;
type ExpandableProps = PropsWithChildren<{
    id?: string;
    label: ReactNode;
    icon?: IconBuilder;
    isExpanded?: boolean;
    onChange?: (isExpanded: boolean) => void;
    /**
     * Whether the expansion should only happen when the header is clicked or on the entire component
     */
    clickOnlyOnHeader?: boolean;
    disabled?: boolean;
    className?: string;
    headerClassName?: string;
    contentClassName?: string;
    contentExpandedClassName?: string;
}>;
/**
 * A Component for showing and hiding content
 */
declare const Expandable: React.ForwardRefExoticComponent<{
    id?: string;
    label: ReactNode;
    icon?: IconBuilder;
    isExpanded?: boolean;
    onChange?: (isExpanded: boolean) => void;
    /**
     * Whether the expansion should only happen when the header is clicked or on the entire component
     */
    clickOnlyOnHeader?: boolean;
    disabled?: boolean;
    className?: string;
    headerClassName?: string;
    contentClassName?: string;
    contentExpandedClassName?: string;
} & {
    children?: ReactNode | undefined;
} & React.RefAttributes<HTMLDivElement>>;
declare const ExpandableUncontrolled: React.ForwardRefExoticComponent<{
    id?: string;
    label: ReactNode;
    icon?: IconBuilder;
    isExpanded?: boolean;
    onChange?: (isExpanded: boolean) => void;
    /**
     * Whether the expansion should only happen when the header is clicked or on the entire component
     */
    clickOnlyOnHeader?: boolean;
    disabled?: boolean;
    className?: string;
    headerClassName?: string;
    contentClassName?: string;
    contentExpandedClassName?: string;
} & {
    children?: ReactNode | undefined;
} & React.RefAttributes<HTMLDivElement>>;

export { Expandable, type ExpandableProps, ExpandableUncontrolled, ExpansionIcon, type ExpansionIconProps };
