import type { BooleanOrCallback } from "@ariakit/core/utils/types"; import type { ElementType, MouseEvent } from "react"; import type { CompositeHoverOptions } from "../composite/composite-hover.tsx"; import type { CompositeItemOptions } from "../composite/composite-item.tsx"; import type { MenubarStore } from "../menubar/menubar-store.ts"; import type { Props } from "../utils/types.ts"; import type { MenuStore } from "./menu-store.ts"; declare const TagName = "div"; type TagName = typeof TagName; /** * Returns props to create a `MenuItem` component. * @see https://ariakit.com/components/menu * @example * ```jsx * const store = useMenuStore(); * const undo = useMenuItem({ store }); * const redo = useMenuItem({ store }); * Edit * * Undo * Redo * * ``` */ export declare const useMenuItem: import("../utils/types.ts").Hook<"div", MenuItemOptions<"div">>; /** * Renders a menu item inside * [`MenuList`](https://ariakit.com/reference/menu-list) or * [`Menu`](https://ariakit.com/reference/menu) * components. * @see https://ariakit.com/components/menu * @example * ```jsx {4-5} * * Edit * * Undo * Redo * * * ``` */ export declare const MenuItem: (props: MenuItemProps) => import("react").ReactElement>; export interface MenuItemOptions extends CompositeItemOptions, CompositeHoverOptions { /** * Object returned by the * [`useMenuStore`](https://ariakit.com/reference/use-menu-store) or * [`useMenubarStore`](https://ariakit.com/reference/use-menubar-store) * hooks. If not provided, the closest * [`Menu`](https://ariakit.com/reference/menu), * [`MenuProvider`](https://ariakit.com/reference/menu-provider), * [`Menubar`](https://ariakit.com/reference/menubar), or * [`MenubarProvider`](https://ariakit.com/reference/menubar-provider) * components' context will be used. */ store?: MenubarStore | MenuStore; /** * Determines if the menu should hide when this item is clicked. * * **Note**: This behavior isn't triggered if this menu item is rendered as a * link and modifier keys are used to either open the link in a new tab or * download it. * * Live examples: * - [Sliding Menu](https://ariakit.com/examples/menu-slide) * @default true */ hideOnClick?: BooleanOrCallback>; } export type MenuItemProps = Props>; export {};