import type * as React from 'react'; /** @internal Options for {@link useMenuItem}, the shared menu-item interaction hook. */ export interface UseMenuItemOptions { disabled?: boolean | undefined; /** Typeahead override, reflected to `data-text-value`. Falls back to the item's rendered text. */ textValue?: string | undefined; /** Called when the item is activated. `event.preventDefault()` keeps the menu open. */ onSelect?: ((event: Event) => void) | undefined; /** * Whether an un-prevented select runs {@link UseMenuItemOptions.onSelected} — in practice, whether it closes the menu — letting `closeOnSelect` default per part alongside `onSelect`'s per-activation veto. * @defaultValue true */ closeOnSelect?: boolean | undefined; /** Called after a select that wasn't prevented — typically closes the menu (and may refocus its trigger). */ onSelected: () => void; /** Where focus returns to on pointer-leave, so keyboard nav resumes at the container. */ contentRef: React.RefObject; props: Pick, 'onClick' | 'onKeyDown' | 'onPointerEnter' | 'onPointerLeave'>; } /** @internal Attributes and handlers {@link useMenuItem} spreads onto a menu item. */ export interface MenuItemInteractionProps { 'data-disabled': '' | undefined; 'data-text-value': string | undefined; 'aria-disabled': true | undefined; tabIndex: number; onClick: (event: React.MouseEvent) => void; onKeyDown: (event: React.KeyboardEvent) => void; onPointerEnter: (event: React.PointerEvent) => void; onPointerLeave: (event: React.PointerEvent) => void; } /** * Shared `menuitem` interaction wiring across all menu families. */ export declare function useMenuItem({ disabled, textValue, onSelect, onSelected, closeOnSelect, contentRef, props, }: UseMenuItemOptions): MenuItemInteractionProps;