import type { ReactNode, UIEventHandler } from 'react'; import { type MenuProps as RACMenuProps, type MenuItemProps as RACMenuItemProps, type MenuSectionProps as RACMenuSectionProps, type MenuTriggerProps as RACMenuTriggerProps } from 'react-aria-components'; import type { CollectionItem, CollectionProps, Key, NavigationProps, StringLikeChildren } from '../types.js'; export interface MenuRootProps extends Pick { /** The menu trigger with its associated menu. Provide the trigger as the first child, and the menu as the second child. */ children: ReactNode; } /** * Encapsulates a menu trigger and its associated menu. The trigger can be any Cimpress UI button, and the menu will be displayed when the trigger is activated. * * See [menu usage guidelines](https://ui.cimpress.io/components/menu/). */ export declare function MenuRoot(props: MenuRootProps): import("react/jsx-runtime").JSX.Element; export declare namespace MenuRoot { var displayName: string; } export interface MenuProps extends CollectionProps, Pick, 'selectedKeys' | 'onSelectionChange' | 'selectionMode'> { /** * The alignment of the menu overlay relative to its trigger. * @default 'start' */ align?: 'start' | 'end'; /** Handler that is called when an item is selected. When using `onAction`, all items must have an `id` prop defined. */ onAction?: (key: Key) => void; /** Handler that is called when the list of items is scrolled. */ onScroll?: UIEventHandler; } /** Displays a collapsible list of options and actions that users can choose from. */ export declare function Menu({ align, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element; export declare namespace Menu { var displayName: string; } export interface MenuSectionProps extends CollectionProps, Pick, 'selectedKeys' | 'onSelectionChange' | 'selectionMode'> { /** The ID of the section. Has to be unique across all sections and items. */ id?: Key; /** The content to display as the section title. */ title: string; } /** Groups list items within `Menu` into a section. */ export declare function MenuSection({ title, children, items, ...props }: MenuSectionProps): import("react/jsx-runtime").JSX.Element; export declare namespace MenuSection { var displayName: string; } export interface MenuItemProps extends NavigationProps, Pick { /** The ID of the item. Has to be unique across all sections and items. */ id?: Key; /** The content to display as the label. */ children: StringLikeChildren; /** Additional description for the menu item. */ description?: string; /** An icon representing the menu item. */ icon?: ReactNode; } /** Renders a single list item within `Menu`. */ export declare function MenuItem({ children, description, icon, ...props }: MenuItemProps): import("react/jsx-runtime").JSX.Element; export declare namespace MenuItem { var displayName: string; } //# sourceMappingURL=menu.d.ts.map