/**
 * @jsxFrag
 * @jsxRuntime classic
 * @jsx jsx
 */
import React from 'react';
import type { MenuItemLinkOrButtonCommonProps, MenuItemOnClick } from './types';
/**
 * This is being _internally_ exported so it can be used in other menu item wrapper components, like
 * ExpandableMenuItemTrigger.
 *
 * This selector is used to apply hover styling on the menu item if it contains an open nested popup.
 * It's looking for a popup trigger with `aria-hasexpanded` and `aria-haspopup` attributes. The
 * reason for targeting the _trigger_ instead of the popup itself, is the popup might be rendered
 * outside the menu item, e.g. if rendered in a portal.
 *
 * An alternative solution might involve wrapping it with a popup context and listening to the popup
 * events through it (and applying the hover style when the popup is open). Exploring this has been
 * captured in [BLU-3354](https://jplat.atlassian.net/browse/BLU-3354).
 */
export declare const nestedOpenPopupCSSSelector = "&:has([aria-expanded=\"true\"][aria-haspopup=\"true\"])";
/**
 * Includes all props that are used by any menu item, as MenuItembase is the base component for all menu item components.
 *
 * We also include additional `aria` props to support the menu item being a trigger for the FlyoutMenuItem popup and for the
 * expanded content for ExpandableMenuItem.
 */
type MenuItemBaseProps<T extends HTMLAnchorElement | HTMLButtonElement> = MenuItemLinkOrButtonCommonProps & {
    /**
     * ID attribute, passed to the interactive element (anchor/button). This is not publicly exposed, and is currently only
     * used internally by `ExpandableMenuItemTrigger` for the `aria-labelledby` attribute.
     */
    id?: string;
    href?: string | Record<string, any>;
    target?: HTMLAnchorElement['target'];
    isDisabled?: boolean;
    isSelected?: boolean;
    ariaControls?: string;
    ariaExpanded?: boolean;
    ariaHasPopup?: boolean | 'dialog';
    onClick?: MenuItemOnClick<T>;
};
/**
 * __MenuItemBase__
 *
 * The base menu item component used to compose ButtonMenuItem and LinkMenuItem.
 *
 * It contains a type argument `<T>`, to specify the type of the interactive element (`button` or `a`).
 * This can be inferred from the type of the `onClick` prop.
 */
export declare const MenuItemBase: <T extends HTMLAnchorElement | HTMLButtonElement>(props: MenuItemBaseProps<T> & React.RefAttributes<T>) => React.ReactElement | null;
export {};
