import * as React from "react";
type RectLike = Pick<DOMRectReadOnly, "left" | "right" | "top" | "bottom">;
export declare function getSubmenuPosition({ triggerRect, menuWidth, menuHeight, viewportWidth, viewportHeight, padding, }: {
    triggerRect: RectLike;
    menuWidth: number;
    menuHeight: number;
    viewportWidth: number;
    viewportHeight: number;
    padding?: number;
}): {
    left: number;
    top: number;
    maxHeight: number;
};
declare function ContextMenu({ children, onOpenChange, }: {
    children: React.ReactNode;
    onOpenChange?: (open: boolean) => void;
}): React.JSX.Element;
type TriggerProps = {
    asChild?: boolean;
    children: React.ReactElement;
} & React.HTMLAttributes<HTMLElement>;
declare function ContextMenuTrigger({ asChild, children, ...rest }: TriggerProps): React.JSX.Element;
declare function ContextMenuGroup({ children, className, }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuPortal({ children }: {
    children: React.ReactNode;
}): React.JSX.Element;
declare function ContextMenuContent({ className, children, }: React.HTMLAttributes<HTMLDivElement>): React.ReactPortal | null;
type ItemCommonProps = {
    inset?: boolean;
    variant?: "default" | "destructive";
    onSelect?: (e: React.MouseEvent | React.KeyboardEvent) => void;
    disabled?: boolean;
} & React.HTMLAttributes<HTMLDivElement>;
declare function ContextMenuItem({ className, inset, variant, onClick, onSelect, onMouseEnter, onMouseLeave, onPointerEnter, onPointerLeave, onFocus, onBlur, ...rest }: ItemCommonProps): React.JSX.Element;
declare function ContextMenuCheckboxItem({ className, children, checked, onClick, ...rest }: {
    className?: string;
    children?: React.ReactNode;
    checked?: boolean;
    disabled?: boolean;
} & React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuRadioGroup({ children }: {
    children: React.ReactNode;
}): React.JSX.Element;
declare function ContextMenuRadioItem({ className, children, checked, onClick, ...rest }: {
    className?: string;
    children?: React.ReactNode;
    checked?: boolean;
    disabled?: boolean;
} & React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuLabel({ className, inset, ...rest }: {
    className?: string;
    inset?: boolean;
} & React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuSeparator({ className, ...rest }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuShortcut({ className, ...rest }: React.ComponentProps<"span">): React.JSX.Element;
declare function ContextMenuSub({ children }: {
    children: React.ReactNode;
}): React.JSX.Element;
declare function ContextMenuSubTrigger({ className, inset, children, disabled, onClick, onMouseEnter, onMouseLeave, onPointerEnter, onPointerLeave, onFocus, onBlur, ...rest }: {
    className?: string;
    inset?: boolean;
    children?: React.ReactNode;
    disabled?: boolean;
} & React.HTMLAttributes<HTMLDivElement>): React.JSX.Element;
declare function ContextMenuSubContent({ className, children, }: React.HTMLAttributes<HTMLDivElement>): React.ReactPortal | null;
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, };
