import { ReactNode } from 'react';
export type CommandMenuTone = "neutral" | "primary" | "success" | "warning" | "danger" | "info";
export type CommandMenuItem = {
    /** Stable id for the item. */
    id: string;
    /** Primary label, e.g. a command name. */
    label: ReactNode;
    /** Secondary description line. */
    description?: ReactNode;
    /** Leading icon node, rendered inside a tinted square. */
    icon?: ReactNode;
    /** Extra text used for filtering (in addition to a string `label`). */
    keywords?: string;
    /** Optional trailing status badge. */
    status?: {
        label: ReactNode;
        tone?: CommandMenuTone;
    };
    disabled?: boolean;
};
export type CommandMenuProps = {
    /** Items to render. */
    items: CommandMenuItem[];
    /** Current filter query. When set and `filter` is not false, items are filtered. */
    query?: string;
    /** Optional uppercase title shown above the list. */
    title?: ReactNode;
    /** Text shown when no items match. */
    emptyText?: ReactNode;
    /** Whether to internally filter `items` by `query`. Defaults to true. */
    filter?: boolean;
    /** Called when an item is selected. */
    onSelect?: (item: CommandMenuItem) => void;
    className?: string;
};
/**
 * Searchable command / option palette. Renders a floating-style surface with a
 * list of icon + label + description rows and optional status badges. Filtering
 * is internal by default; pass `filter={false}` to control the list yourself.
 *
 * The component is position-agnostic — wrap it (or pass `className`) to place it
 * as a popover above an input, in a dropdown, etc.
 */
export declare function CommandMenu({ items, query, title, emptyText, filter, onSelect, className }: CommandMenuProps): import("react/jsx-runtime").JSX.Element;
export declare namespace CommandMenu {
    var displayName: string;
}
