import type { ForwardedRef, ReactNode, RefObject } from 'react'; import React from 'react'; export type Bounds = { top: number; left: number; width: number; height: number; }; export type ContextMenuItemType = { key: string; text: ReactNode; children?: ContextMenuItemWithSplitType[]; disabled?: boolean; icon?: ReactNode; extra?: ReactNode; onClick?: (e: React.MouseEvent) => any; }; export type ContextMenuItemWithSplitType = ContextMenuItemType | 'split-line'; export type MenuItemProps = Omit, 'children'> & Omit & { menuKey: string; hasIcon?: boolean; onMenuClick?: (menu: ContextMenuItemType, event: React.MouseEvent) => void; }; export declare const MenuItem: (props: MenuItemProps) => import("react/jsx-runtime").JSX.Element; export interface MenuContainerProps extends React.HTMLAttributes { bounds?: Bounds; data?: ContextMenuItemWithSplitType[]; onMenuClick?: (menu: ContextMenuItemType, event: React.MouseEvent) => void; } export declare const MenuContainer: (props: MenuContainerProps) => import("react/jsx-runtime").JSX.Element; export interface ContextMenuProps extends React.HTMLAttributes { data?: (T | 'split-line')[] | ((el: HTMLElement | null) => (T | 'split-line')[]); onMenuClick?: (menu: T, event: React.MouseEvent) => void; getContainer?: (element: HTMLElement) => HTMLElement; menuContainerClassName?: string; mainMenuMinWidth?: number; wrapperStyle?: React.CSSProperties; disabled?: boolean; ref?: RefObject; } declare const _default: (props: ContextMenuProps, pRef: ForwardedRef) => import("react/jsx-runtime").JSX.Element; export default _default;