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>) => ReactNode); /** * Label to be display by the button */ label: ReactNode; /** * Open on pointer over (useful for dropdowns in header) */ openOnHover?: boolean; } & Omit; /** @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) => 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 & DropdownProps & Omit, "children">) => import("react/jsx-runtime").JSX.Element; export default DropdownButton; //# sourceMappingURL=dropdown-button.d.ts.map