import type * as React from "react";

/**
 * The dropdown action list. Items are 28px tall with a 6px radius and a 4% highlight.
 *
 * The popup is portalled to the document in viewport coordinates, so a row menu
 * opened from inside a scrolling table is not clipped by the container. It
 * repositions on scroll and resize, flips when there is no room below, and clamps
 * to the viewport; clicking inside the portalled panel is not an outside click.
 */
export interface MenuProps {
  open?: boolean;
  defaultOpen?: boolean;
  onOpenChange?: (open: boolean) => void;
  className?: string;
  children?: React.ReactNode;
}
export declare function Menu(props: MenuProps): React.ReactElement;
export declare function MenuTrigger(props: { children: React.ReactElement }): React.ReactElement;
export declare function MenuPopup(props: React.HTMLAttributes<HTMLDivElement> & { align?: "start" | "center" | "end"; side?: "top" | "bottom" }): React.ReactElement | null;
export declare function MenuItem(props: React.HTMLAttributes<HTMLDivElement> & { variant?: "default" | "destructive"; inset?: boolean; icon?: React.ReactNode; shortcut?: React.ReactNode }): React.ReactElement;
export declare function MenuGroupLabel(props: React.HTMLAttributes<HTMLDivElement>): React.ReactElement;
export declare function MenuSeparator(props: { className?: string }): React.ReactElement;
export declare function MenuShortcut(props: React.HTMLAttributes<HTMLSpanElement>): React.ReactElement;
export declare function MenuCheckboxItem(props: React.HTMLAttributes<HTMLDivElement> & { checked?: boolean; onCheckedChange?: (checked: boolean) => void }): React.ReactElement;
export declare function MenuRadioItem(props: React.HTMLAttributes<HTMLDivElement> & { checked?: boolean; onSelect?: () => void }): React.ReactElement;
