import { Variant } from 'framer-motion'; import { ReactNode } from 'react'; import { BoxProps } from '../../Box'; import { RadixMenuItemProps } from '../components/RadixMenuItem'; import { MenuSize } from '../../Menus/components/Menu'; import { TXProp } from '../../theme'; import { MenuVariantName } from '../../theme/variants/menus'; export declare type RadixDropdownMenuOption = RadixMenuItemProps & { id?: string; }; interface MenuProps extends Pick { /** * The `animation` prop allows you to define the animation for each of the 4 animation states. */ animation?: { animate: Variant; exit: Variant; initial: Variant; } | null; /** * The `size` prop determines the padding and default width of the menu. */ size?: MenuSize; } export interface RadixDropdownMenuProps extends Pick { tx?: TXProp; /** * Children for the dropdown menu that is rendered below the options. */ childrenBottom?: ReactNode; /** * Children for the dropdown menu that is rendered above the options. */ childrenTop?: ReactNode; /** * The test id for the dropdown menu list. */ ['data-testid']?: string; /** * The `hasOverlay` props determines whether a transparent `div` is added to the DOM * to prevent users from hovering / clicking with other elements on the page while * the menu is opened. */ hasOverlay?: boolean; /** * The `offset` allows you to control the distance between the menu and the trigger. */ offset?: number; options: RadixDropdownMenuOption[]; /** * The `onChange` prop returns the new state of the dropdown menu. */ onChange?: (isExpanded: boolean) => void; /** * The trigger that will open the menu. */ trigger: ReactNode; variant?: MenuVariantName; subOptionsTx?: TXProp; } export declare const RadixDropdownMenu: import("react").MemoExoticComponent<({ animation, childrenBottom, childrenTop, hasOverlay, offset, options, onChange, size, subOptionsTx, variant, ["data-testid"]: testId, trigger, tx, }: RadixDropdownMenuProps) => JSX.Element>; export {};