import React from 'react'; import { MenuContextProps } from './MenuContext'; export interface MenuProps { /** * Whether dropdown is initially open */ defaultOpen?: boolean; /** * Controlled open state */ open?: boolean; disabled?: boolean; children: (props: React.HTMLAttributes & MenuRenderProps, ref: React.Ref) => React.ReactElement>; menuButtonText?: React.ReactNode; renderMenuButton?: (props: React.ButtonHTMLAttributes & MenuButtonRenderProps, ref: React.Ref) => React.ReactElement>; renderMenuPopup?: (props: React.HTMLAttributes & MenuPopupRenderProps, ref: React.Ref) => React.ReactElement>; openMenuOn?: readonly MenuButtonTrigger[]; onToggleMenu?: (open: boolean, event: React.SyntheticEvent) => void; } export type MenuButtonTrigger = 'mouseover' | 'click' | 'contextmenu'; export interface MenuRenderProps { open: boolean; } export interface MenuButtonRenderProps { open: boolean; } export interface MenuPopupRenderProps { open: boolean; } export interface MenuHandle { dispatch: MenuContextProps[1]; } /** * Headless ARIA `menu` * @private */ declare function Menu({ disabled, children, openMenuOn, defaultOpen, open: openProp, menuButtonText, renderMenuButton, renderMenuPopup, onToggleMenu }: MenuProps & Omit, 'children'>): React.ReactElement, string | React.JSXElementConstructor>; declare namespace Menu { var displayName: string; } export default Menu;