import * as React from 'react';
import { MenuOrientation } from './useMenuRoot.js';
import type { OpenChangeReason } from '../../utils/translateOpenChangeReason.js';
/**
 * Groups all parts of the menu.
 * Doesn’t render its own HTML element.
 *
 * Documentation: [Base UI Menu](https://base-ui.com/react/components/menu)
 */
declare const MenuRoot: React.FC<MenuRoot.Props>;
declare namespace MenuRoot {
    interface Props {
        children: React.ReactNode;
        /**
         * Whether the menu is initially open.
         *
         * To render a controlled menu, use the `open` prop instead.
         * @default false
         */
        defaultOpen?: boolean;
        /**
         * Whether to loop keyboard focus back to the first item
         * when the end of the list is reached while using the arrow keys.
         * @default true
         */
        loop?: boolean;
        /**
         * Whether the menu should prevent outside clicks and lock page scroll when open.
         * @default true
         */
        modal?: boolean;
        /**
         * Event handler called when the menu is opened or closed.
         */
        onOpenChange?: (open: boolean, event?: Event, reason?: OpenChangeReason) => void;
        /**
         * Event handler called after any animations complete when the menu is closed.
         */
        onOpenChangeComplete?: (open: boolean) => void;
        /**
         * Whether the menu is currently open.
         */
        open?: boolean;
        /**
         * The visual orientation of the menu.
         * Controls whether roving focus uses up/down or left/right arrow keys.
         * @default 'vertical'
         */
        orientation?: MenuOrientation;
        /**
         * Whether the component should ignore user interaction.
         * @default false
         */
        disabled?: boolean;
        /**
         * When in a submenu, determines whether pressing the Escape key
         * closes the entire menu, or only the current child menu.
         * @default true
         */
        closeParentOnEsc?: boolean;
        /**
         * How long to wait before the menu may be opened on hover. Specified in milliseconds.
         *
         * Requires the `openOnHover` prop.
         * @default 100
         */
        delay?: number;
        /**
         * Whether the menu should also open when the trigger is hovered.
         *
         * Defaults to `true` for nested menus.
         */
        openOnHover?: boolean;
        /**
         * A ref to imperative actions.
         */
        actionsRef?: React.RefObject<{
            unmount: () => void;
        }>;
    }
    interface Actions {
        unmount: () => void;
    }
}
export { MenuRoot };
