import * as React from 'react';
import { ButtonProps } from './Button';
import { PopoverProps } from '../popover';
export declare const menuButtonPlacements: readonly ["top", "bottom"];
type MenuButtonPlacement = (typeof menuButtonPlacements)[number];
export type MenuButtonProps = Omit<ButtonProps, 'children' | 'component'> & Pick<PopoverProps, 'anchorHorizontalOrigin' | 'horizontalAlign'> & {
    /**
     * The list of menu items to display.
     */
    children: React.ReactNode;
    /**
     * Whether the menu is opened or not.
     */
    isOpen?: boolean;
    /**
     * To remove the icon on menu button.
     * @default false
     */
    removeIcon?: boolean;
    /**
     * To show menu on the top of the button.
     * @default bottom
     */
    placement?: MenuButtonPlacement;
    /**
     * Called when the menuIconButton is closed by Escape key, Tab key or click outside.
     */
    onClose?: (reason: 'backdropClick' | 'escapeKeyDown' | 'tabKeyDown') => void;
};
/**
 * A component that displays a Button with a menu.
 * An invisible overlay is displayed on top of the page to close menu if clicked outside.
 */
declare const MenuButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "children" | "component"> & Pick<PopoverProps, "horizontalAlign" | "anchorHorizontalOrigin"> & {
    /**
     * The list of menu items to display.
     */
    children: React.ReactNode;
    /**
     * Whether the menu is opened or not.
     */
    isOpen?: boolean;
    /**
     * To remove the icon on menu button.
     * @default false
     */
    removeIcon?: boolean;
    /**
     * To show menu on the top of the button.
     * @default bottom
     */
    placement?: MenuButtonPlacement;
    /**
     * Called when the menuIconButton is closed by Escape key, Tab key or click outside.
     */
    onClose?: (reason: "backdropClick" | "escapeKeyDown" | "tabKeyDown") => void;
} & React.RefAttributes<HTMLButtonElement>>;
export default MenuButton;
