import * as React from "react"; import { Button } from "@/components/ui/button"; export type ActionMenuItem = { key: string; label: React.ReactNode; section?: React.ReactNode; description?: React.ReactNode; icon?: React.ReactNode; shortcut?: React.ReactNode; disabled?: boolean; loading?: boolean; destructive?: boolean; hidden?: boolean; keepOpen?: boolean; onSelect?: () => void | Promise; }; export type ActionMenuProps = { actions: ActionMenuItem[]; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; label?: React.ReactNode; triggerLabel?: string; trigger?: React.ReactElement; align?: "start" | "center" | "end"; side?: "top" | "right" | "bottom" | "left"; sideOffset?: number; disabled?: boolean; triggerVariant?: React.ComponentProps["variant"]; triggerSize?: React.ComponentProps["size"]; showChevron?: boolean; closeOnSelect?: boolean; contentClassName?: string; triggerClassName?: string; itemClassName?: string; emptyLabel?: React.ReactNode; menuWidth?: number | string; loadingLabel?: React.ReactNode; persistIconSpace?: boolean; itemRoleDescription?: string; renderItem?: (action: ActionMenuItem, state: { loading: boolean; close: () => void; }) => React.ReactNode; onActionError?: (error: unknown, action: ActionMenuItem) => void; }; declare function ActionMenu({ actions, open: openProp, defaultOpen, onOpenChange, label, triggerLabel, trigger, align, side, sideOffset, disabled, triggerVariant, triggerSize, showChevron, closeOnSelect, contentClassName, triggerClassName, itemClassName, emptyLabel, menuWidth, loadingLabel, persistIconSpace, itemRoleDescription, renderItem, onActionError, }: ActionMenuProps): React.JSX.Element; export { ActionMenu };