import React from "react"; import type { ReactElement } from "react"; import type { ComposableMenuContentProps, ComposableMenuGroupLabelProps, ComposableMenuGroupProps, ComposableMenuItemIconProps, ComposableMenuItemLabelProps, ComposableMenuItemPrefixProps, ComposableMenuItemProps, ComposableMenuItemSuffixProps, ComposableMenuRadioGroupProps, ComposableMenuRadioItemProps, ComposableMenuSeparatorProps, ComposableMenuSubmenuContentProps, ComposableMenuSubmenuProps, ComposableMenuSubmenuTriggerProps, ComposableMenuTriggerProps } from "./menuComposableTypes"; import type { MenuHeaderComposableProps, MenuHeaderLabelComposableProps, MenuProps, MenuSectionComposableProps } from "./Menu.types"; export interface MenuComponent { (props: MenuProps): ReactElement; Group: typeof MenuGroup; GroupLabel: typeof MenuGroupLabel; /** * @deprecated Use Menu.Group instead. */ Section: typeof MenuSection; /** * @deprecated Use Menu.GroupLabel instead. */ Header: typeof MenuHeader; /** * @deprecated Use Menu.GroupLabel content directly instead. */ HeaderLabel: typeof MenuHeaderLabel; Item: typeof MenuItem; Trigger: typeof MenuTrigger; Content: typeof MenuContent; Separator: typeof MenuSeparator; RadioGroup: typeof MenuRadioGroup; RadioItem: typeof MenuRadioItem; Submenu: typeof MenuSubmenu; SubmenuTrigger: typeof MenuSubmenuTrigger; SubmenuContent: typeof MenuSubmenuContent; ItemIcon: typeof MenuItemIcon; ItemLabel: typeof MenuItemLabel; ItemPrefix: typeof MenuItemPrefix; ItemSuffix: typeof MenuItemSuffix; } export declare function Menu(props: MenuProps): ReactElement; export declare namespace Menu { var Group: typeof MenuGroup; var GroupLabel: typeof MenuGroupLabel; var Section: typeof MenuSection; var Header: typeof MenuHeader; var HeaderLabel: typeof MenuHeaderLabel; var Item: React.ForwardRefExoticComponent>; var Trigger: React.ForwardRefExoticComponent>; var Content: typeof MenuContent; var Separator: typeof MenuSeparator; var RadioGroup: typeof MenuRadioGroup; var RadioItem: React.ForwardRefExoticComponent>; var Submenu: typeof MenuSubmenu; var SubmenuTrigger: React.ForwardRefExoticComponent>; var SubmenuContent: typeof MenuSubmenuContent; var ItemIcon: typeof MenuItemIcon; var ItemLabel: typeof MenuItemLabel; var ItemPrefix: typeof MenuItemPrefix; var ItemSuffix: typeof MenuItemSuffix; } declare const MenuTrigger: React.ForwardRefExoticComponent>; declare function MenuContent(props: ComposableMenuContentProps): React.JSX.Element; declare function MenuSeparator(props: ComposableMenuSeparatorProps): React.JSX.Element; declare function MenuRadioGroup(props: ComposableMenuRadioGroupProps): React.JSX.Element; declare const MenuRadioItem: React.ForwardRefExoticComponent>; declare function MenuSubmenu(props: ComposableMenuSubmenuProps): React.JSX.Element; declare const MenuSubmenuTrigger: React.ForwardRefExoticComponent>; declare function MenuSubmenuContent(props: ComposableMenuSubmenuContentProps): React.JSX.Element; declare function MenuGroup(props: ComposableMenuGroupProps): React.JSX.Element; /** * @deprecated Use Menu.Group instead. * This wrapper keeps the old composable authoring shape working while the * underlying menu structure uses grouped semantics. */ declare function MenuSection(props: MenuSectionComposableProps): React.JSX.Element; declare const MenuItem: React.ForwardRefExoticComponent>; declare function MenuItemIcon(props: ComposableMenuItemIconProps): React.JSX.Element; declare function MenuItemLabel(props: ComposableMenuItemLabelProps): React.JSX.Element; declare function MenuItemPrefix(props: ComposableMenuItemPrefixProps): React.JSX.Element; declare function MenuItemSuffix(props: ComposableMenuItemSuffixProps): React.JSX.Element; declare function MenuGroupLabel(props: ComposableMenuGroupLabelProps): React.JSX.Element; /** * @deprecated Use Menu.GroupLabel instead. * Header remains as a thin wrapper so older JSX can keep compiling without * recreating the old internal DOM structure. */ declare function MenuHeader(props: MenuHeaderComposableProps): React.JSX.Element; /** * @deprecated Use Menu.GroupLabel content directly instead. * HeaderLabel is intentionally a pass-through so the old nested pattern: * Menu.Header > Menu.HeaderLabel continues to compose onto the new GroupLabel. */ declare function MenuHeaderLabel(props: MenuHeaderLabelComposableProps): React.JSX.Element; export {};