import type { PopoverProps, SvgIconProps } from '@mui/material';
interface MenuItemEndDecorationSubMenuProps {
    type: 'subMenu';
}
interface MenuItemEndDecorationSelectorProps {
    type: 'checkbox' | 'radio';
    checked: boolean;
    disabled?: boolean;
}
type MenuItemEndDecorationProps = MenuItemEndDecorationSubMenuProps | MenuItemEndDecorationSelectorProps;
export declare function MenuItemEndDecoration(props: MenuItemEndDecorationProps): import("react/jsx-runtime").JSX.Element;
export interface MenuDivider {
    priority?: number;
    type: 'divider';
}
export interface MenuSubHeader {
    type: 'subHeader';
    priority?: number;
    label: string;
}
export interface BaseMenuItem {
    id?: string;
    label: React.ReactNode;
    priority?: number;
    subLabel?: string;
    icon?: React.ComponentType<SvgIconProps>;
    disabled?: boolean;
}
export interface NormalMenuItem extends BaseMenuItem {
    type?: 'normal';
    onClick: (...args: any[]) => void;
}
export interface CheckboxMenuItem extends BaseMenuItem {
    type: 'checkbox';
    checked: boolean;
    onClick: (...args: any[]) => void;
}
export interface RadioMenuItem extends BaseMenuItem {
    type: 'radio';
    checked: boolean;
    onClick: (...args: any[]) => void;
}
export interface SubMenuItem extends BaseMenuItem {
    type?: 'subMenu';
    subMenu: MenuItem[];
}
export type MenuItem = MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem;
interface MenuProps extends PopoverProps {
    menuItems: MenuItem[];
    onMenuItemClick: (event: React.MouseEvent<HTMLLIElement>, callback: (...args: any[]) => void) => void;
}
declare function Menu(props: MenuProps): import("react/jsx-runtime").JSX.Element;
export default Menu;
