import { type ReactNode } from "react";
export interface DropdownMenuItem {
    label: string;
    icon?: ReactNode;
    onClick?: () => void;
    danger?: boolean;
    disabled?: boolean;
    separator?: boolean;
}
export interface DropdownMenuProps {
    trigger: ReactNode;
    items: DropdownMenuItem[];
    align?: "start" | "end";
    className?: string;
    /**
     * Override the className applied to the auto-generated trigger <button>.
     * Defaults to "ods-dropdown__trigger". Useful when composing the
     * DropdownMenu inside a host component (e.g. Sidebar user card) that
     * supplies its own button styling.
     */
    triggerClassName?: string;
    /**
     * Close the menu when the user clicks (mousedown) outside both the menu
     * and the trigger. Default: true — the standard popover behaviour users
     * expect. Disable only when you need an explicitly-controlled menu
     * (e.g. anchored to a different dismissal flow).
     */
    closeOnOutsideClick?: boolean;
    /**
     * Close the menu when the user presses Escape. Default: true.
     * Disable only if Escape is needed by a parent surface.
     */
    closeOnEscape?: boolean;
    /**
     * Accessible name for the trigger button. Required when `trigger` is not
     * a plain string (e.g. an icon-only trigger). When omitted and `trigger`
     * is a string, the string content is used automatically.
     */
    "aria-label"?: string;
    /** id of an element that labels the trigger; alternative to aria-label. */
    "aria-labelledby"?: string;
}
export declare function DropdownMenu({ trigger, items, align, className, triggerClassName, closeOnOutsideClick, closeOnEscape, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=DropdownMenu.d.ts.map