import React, { ReactNode, MouseEvent } from "react"; import { PopperPlacement } from "../../types"; import { BoxProps } from "../Box"; import { RenderProps } from "./context"; interface TriggerProps { id: string; onClick: (event: Event | MouseEvent) => void; "aria-haspopup": "menu"; "aria-expanded": boolean; "aria-controls": string; role: string; tabIndex: number; } export type MenuRendererTriggerProps = TriggerProps; interface TriggerState { isOpen: boolean; onClose: () => void; } export type MenuRendererTriggerState = TriggerState; type TriggerFunction = (props: TriggerProps, state: TriggerState) => ReactNode; type RenderFunction = (props: RenderProps) => ReactNode; export interface MenuProps extends Omit { trigger: TriggerFunction; children: RenderFunction | ReactNode; placement?: PopperPlacement; position?: "absolute" | "fixed"; popperModifiers?: Record[]; autoFocus?: boolean; hasPortal?: boolean; isOpen?: boolean; onClose?: () => void; isMenuOpen?: boolean; openMenu?: (open: boolean) => void; menuDisplay?: "inline-block" | "block"; disableFocusLock?: boolean; closeOnSelect?: boolean; disableEscClose?: boolean; } export declare const MenuRenderer: ({ children, className, placement, position, trigger, popperModifiers, autoFocus, hasPortal, isOpen: isOpenInitial, isMenuOpen: isOpenControlled, onClose: onCloseProp, openMenu: setOpenControlled, menuDisplay, disableFocusLock, closeOnSelect, disableEscClose, ...rest }: MenuProps) => React.JSX.Element; export {};