import * as React from 'react';
import { IconButtonProps } from './IconButton';
import { PopoverProps } from '../popover/Popover';
import { SxProps } from '@mui/material';
export declare const menuIconButtonPlacements: readonly ["top", "bottom"];
type MenuIconButtonPlacement = (typeof menuIconButtonPlacements)[number];
export type MenuIconButtonProps = IconButtonProps & Pick<PopoverProps, 'anchorHorizontalOrigin' | 'horizontalAlign'> & {
    /**
     * The list of menu items to display.
     */
    children: React.ReactNode;
    /**
     * Whether the menu is opened or not.
     */
    isOpen?: boolean;
    /**
     * To show menu on the top of the button.
     * @default bottom
     */
    placement?: MenuIconButtonPlacement;
    /**
     * Called when the menuIconButton is closed by Escape key, Tab key or click outside.
     */
    onClose?: (reason: 'backdropClick' | 'escapeKeyDown' | 'tabKeyDown') => void;
    /**
     * CSS props for menu popover
     */
    menuSx?: React.CSSProperties;
    /**
     * CSS props for menu paper
     */
    menuPaperSx?: SxProps;
    /**
     * CSS props for menu list
     */
    menuListSx?: SxProps;
};
/**
 * A component that displays an IconButton with a menu.
 * An invisible overlay is displayed on top of the page to close menu if clicked outside.
 */
declare const MenuIconButton: React.ForwardRefExoticComponent<Pick<import("@mui/material").IconButtonProps, "id" | "className" | "sx" | "disabled" | "onClick" | "onMouseDown"> & {
    iconId: import("..").IconId;
    size?: "XXS" | "XS" | "S" | "M" | "L" | "XL" | "ML";
    'data-test'?: string;
    variant?: "default" | "outlined" | "contained" | "primary";
    shape?: "default" | "square";
    disableInteractionEffects?: boolean;
} & Pick<PopoverProps, "horizontalAlign" | "anchorHorizontalOrigin"> & {
    /**
     * The list of menu items to display.
     */
    children: React.ReactNode;
    /**
     * Whether the menu is opened or not.
     */
    isOpen?: boolean;
    /**
     * To show menu on the top of the button.
     * @default bottom
     */
    placement?: MenuIconButtonPlacement;
    /**
     * Called when the menuIconButton is closed by Escape key, Tab key or click outside.
     */
    onClose?: (reason: "backdropClick" | "escapeKeyDown" | "tabKeyDown") => void;
    /**
     * CSS props for menu popover
     */
    menuSx?: React.CSSProperties;
    /**
     * CSS props for menu paper
     */
    menuPaperSx?: SxProps;
    /**
     * CSS props for menu list
     */
    menuListSx?: SxProps;
} & React.RefAttributes<HTMLButtonElement>>;
export default MenuIconButton;
