import { SIZES } from "../../../constants";
import React from "react";
import { type ElementContent, type VibeComponentProps } from "../../../types";
import { type CloseMenuOption } from "./MenuConstants";
export interface MenuProps extends VibeComponentProps {
    /**
     * Size of the menu.
     */
    size?: (typeof SIZES)[keyof typeof SIZES];
    /**
     * The tab index of the menu.
     */
    tabIndex?: number;
    /**
     * ARIA label for accessibility.
     */
    ariaLabel?: string;
    /**
     * ARIA description ID.
     */
    ariaDescribedBy?: string;
    /**
     * If true, the menu will automatically focus on mount.
     */
    focusOnMount?: boolean;
    /**
     * Callback when a menu item gains focus.
     */
    onItemFocus?: (index: number) => void;
    /**
     * Controls the visibility of the menu.
     */
    isVisible?: boolean;
    /**
     * Callback triggered when the menu closes.
     */
    onClose?: (option: CloseMenuOption) => void;
    /**
     * Index of the focused menu item.
     */
    focusItemIndex?: number;
    /**
     * If true, this menu is a submenu.
     */
    isSubMenu?: boolean;
    /**
     * If true, event listeners will be attached to the document.
     */
    useDocumentEventListeners?: boolean;
    /**
     * Index of the item that should be focused when the menu mounts.
     */
    focusItemIndexOnMount?: number;
    /**
     * If true, enables scrolling within the menu.
     */
    shouldScrollMenu?: boolean;
    /**
     * The menu items.
     */
    children?: ElementContent;
}
declare const _default: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<HTMLElement>> & {
    sizes: {
        readonly SMALL: "small";
        readonly MEDIUM: "medium";
        readonly LARGE: "large";
        readonly XXS: "xxs";
        readonly XS: "xs";
    };
};
export default _default;
