import { type ReactNode, type ReactElement, type Dispatch, type SetStateAction, type HTMLAttributes } from 'react';
import { type ButtonProps } from './button';
import '../styles/components/dropdown.scss';
export type DropdownButtonProps = {
    /**
     * Content revealed on click.
     */
    children: ReactNode | ((showMenu: Dispatch<SetStateAction<boolean>>) => ReactNode);
    /**
     * Label to be display by the button
     */
    label: ReactNode;
    /**
     * Open on pointer over (useful for dropdowns in header)
     */
    openOnHover?: boolean;
} & Omit<ButtonProps, 'children'>;
/** @deprecated */
declare const DropdownButton: ({ children, label, className, openOnHover, ...props }: DropdownButtonProps) => import("react/jsx-runtime").JSX.Element;
type ControlledDropdownProps = {
    /**
     * Element always visible used to open and close the dropdown
     */
    visibleElement: ReactElement;
    /**
     * Whether the dropdown is open or closed
     */
    expanded: boolean;
};
export declare const ControlledDropdown: ({ visibleElement, expanded, children, className, "aria-haspopup": ariaHaspopup, ...props }: ControlledDropdownProps & HTMLAttributes<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
type DropdownProps = {
    /**
     * Prop that, when it changes, will cause the dropdown to close
     */
    propChangeToClose?: unknown;
    /**
     * Render for element always visible used to open and close the dropdown
     */
    visibleElement: (onClick: () => unknown) => ReactElement;
    /**
     * Close if a clickable element within is clicked
     */
    children: ReactNode | ((closeDropdown: () => unknown) => ReactNode);
};
export declare const Dropdown: ({ visibleElement, propChangeToClose, className, "aria-haspopup": ariaHaspopup, children, ...props }: Omit<ControlledDropdownProps, "expanded" | "visibleElement"> & DropdownProps & Omit<HTMLAttributes<HTMLDivElement>, "children">) => import("react/jsx-runtime").JSX.Element;
export default DropdownButton;
//# sourceMappingURL=dropdown-button.d.ts.map