import { Dialog as BaseDialog } from "@base-ui/react/dialog";
import { Separator as BaseSeparator } from "@base-ui/react/separator";
import * as React from "react";
type CommandFilter = (value: string, search: string, keywords?: string[]) => number;
interface CommandProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Command palette content.
     * @default undefined
     */
    children?: React.ReactNode;
    /**
     * Accessible label announced for the command region.
     * @default undefined
     */
    label?: string;
    /**
     * Whether items should be filtered automatically as the search value changes.
     * @default true
     */
    shouldFilter?: boolean;
    /**
     * Custom scoring function used to determine whether an item matches the current search value.
     * @default undefined
     */
    filter?: CommandFilter;
    /**
     * Deprecated uncontrolled search value placeholder retained for API compatibility.
     * @default undefined
     */
    defaultValue?: string;
    /**
     * Deprecated controlled search value placeholder retained for API compatibility.
     * @default undefined
     */
    value?: string;
    /**
     * Deprecated change callback retained for API compatibility.
     * @default undefined
     */
    onValueChange?: (value: string) => void;
    /**
     * Whether keyboard navigation should wrap from the last item to the first.
     * @default false
     */
    loop?: boolean;
    /**
     * Whether pointer hover should avoid changing the active item.
     * @default false
     */
    disablePointerSelection?: boolean;
    /**
     * Deprecated Vim keybinding toggle retained for API compatibility.
     * @default undefined
     */
    vimBindings?: boolean;
}
interface CommandDialogProps extends Omit<React.ComponentPropsWithoutRef<typeof BaseDialog.Root>, "children"> {
    /**
     * Command palette content rendered inside the dialog popup.
     * @default undefined
     */
    children?: React.ReactNode;
    /**
     * Accessible dialog title announced to assistive technologies.
     * @default "Command menu"
     */
    title?: React.ReactNode;
}
interface CommandInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "value"> {
    /**
     * Controlled search value.
     * @default undefined
     */
    value?: string;
    /**
     * Native input change handler invoked before the command-specific callback.
     * @default undefined
     */
    onChange?: React.ChangeEventHandler<HTMLInputElement>;
    /**
     * Callback fired when the command search value changes.
     * @default undefined
     */
    onValueChange?: (search: string) => void;
}
interface CommandListProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Command items and groups.
     * @default undefined
     */
    children?: React.ReactNode;
    /**
     * Accessible label for the listbox container.
     * @default undefined
     */
    label?: string;
}
interface CommandGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "value"> {
    /**
     * Group contents.
     * @default undefined
     */
    children?: React.ReactNode;
    /**
     * Optional visual heading displayed above the group items.
     * @default undefined
     */
    heading?: React.ReactNode;
    /**
     * Optional stable value retained for API compatibility.
     * @default undefined
     */
    value?: string;
    /**
     * Whether the group should remain rendered even when it has no visible items.
     * @default false
     */
    forceMount?: boolean;
}
interface CommandSeparatorProps extends React.ComponentPropsWithoutRef<typeof BaseSeparator> {
    /**
     * Whether the separator should remain visible while filtering is active.
     * @default false
     */
    alwaysRender?: boolean;
}
interface CommandItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onSelect"> {
    /**
     * Item contents.
     * @default undefined
     */
    children?: React.ReactNode;
    /**
     * Whether the item is disabled and should be skipped by selection logic.
     * @default false
     */
    disabled?: boolean;
    /**
     * Callback invoked when the item is selected.
     * @default undefined
     */
    onSelect?: (value: string) => void;
    /**
     * Optional value used for filtering and selection callbacks.
     * @default undefined
     */
    value?: string;
    /**
     * Additional search keywords included in the filter match set.
     * @default []
     */
    keywords?: string[];
    /**
     * Whether the item should remain rendered even when filtered out.
     * @default false
     */
    forceMount?: boolean;
}
/**
 * Provides a lightweight, filterable command surface without depending on cmdk.
 *
 * @remarks
 * This wrapper preserves the existing compound-component API while replacing the
 * underlying implementation with a small context-driven registry. It supports
 * text filtering, arrow-key navigation, Enter-to-select, and pointer hover
 * selection for common command palette use cases.
 *
 * @example
 * ```tsx
 * <Command label='Quick actions'>
 *   <CommandInput placeholder='Search actions...' />
 *   <CommandList>
 *     <CommandItem onSelect={() => console.log("Open")}>Open</CommandItem>
 *   </CommandList>
 * </Command>
 * ```
 *
 * @see {@link https://base-ui.com/react/components/dialog | Base UI Dialog Docs}
 */
declare const Command: React.ForwardRefExoticComponent<CommandProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders the command surface inside a modal dialog.
 *
 * @remarks
 * - Renders a Base UI dialog popup
 * - Built on Base UI Dialog primitives
 *
 * @example
 * ```tsx
 * <CommandDialog open={open} onOpenChange={setOpen}>
 *   <CommandInput placeholder='Search...' />
 * </CommandDialog>
 * ```
 *
 * @see {@link https://base-ui.com/react/components/dialog | Base UI Dialog Docs}
 */
declare function CommandDialog({ children, open, onOpenChange, title, ...props }: Readonly<CommandDialogProps>): React.JSX.Element;
declare namespace CommandDialog {
    var displayName: string;
}
/**
 * Provides the searchable input surface for a command palette.
 *
 * @remarks
 * - Renders an `<input>` element inside a wrapper `<div>`
 * - Built on the shared command registry context
 *
 * @example
 * ```tsx
 * <CommandInput placeholder='Search...' />
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/combobox_role | ARIA Combobox Role}
 */
declare const CommandInput: React.ForwardRefExoticComponent<CommandInputProps & React.RefAttributes<HTMLInputElement>>;
/**
 * Renders the listbox container that hosts command items and groups.
 *
 * @remarks
 * - Renders a `<div>` element with `role="listbox"`
 * - Built on the shared command registry context
 *
 * @example
 * ```tsx
 * <CommandList>
 *   <CommandItem>Settings</CommandItem>
 * </CommandList>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/listbox_role | ARIA Listbox Role}
 */
declare const CommandList: React.ForwardRefExoticComponent<CommandListProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a fallback empty-state message when no command items are visible.
 *
 * @remarks
 * - Renders a `<div>` element with `role="status"`
 * - Built on the shared command registry context
 *
 * @example
 * ```tsx
 * <CommandEmpty>No results found.</CommandEmpty>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/status_role | ARIA Status Role}
 */
declare const CommandEmpty: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
/**
 * Groups related command items under an optional heading.
 *
 * @remarks
 * - Renders a `<div>` element
 * - Built on the shared command registry context
 *
 * @example
 * ```tsx
 * <CommandGroup heading='Suggestions'>
 *   <CommandItem>Profile</CommandItem>
 * </CommandGroup>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/group_role | ARIA Group Role}
 */
declare const CommandGroup: React.ForwardRefExoticComponent<CommandGroupProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a separator between command groups or item sections.
 *
 * @remarks
 * - Renders the shared separator primitive
 * - Built on Base UI Separator
 *
 * @example
 * ```tsx
 * <CommandSeparator />
 * ```
 *
 * @see {@link https://base-ui.com/react/components/separator | Base UI Separator Docs}
 */
declare const CommandSeparator: React.ForwardRefExoticComponent<CommandSeparatorProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders a selectable command option with filtering metadata and keyboard support.
 *
 * @remarks
 * - Renders a `<div>` element with `role="option"`
 * - Built on the shared command registry context
 *
 * @example
 * ```tsx
 * <CommandItem keywords={["preferences"]}>Settings</CommandItem>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Roles/option_role | ARIA Option Role}
 */
declare const CommandItem: React.ForwardRefExoticComponent<CommandItemProps & React.RefAttributes<HTMLDivElement>>;
/**
 * Renders auxiliary shortcut text aligned to the edge of a command item.
 *
 * @remarks
 * - Renders a `<span>` element
 * - Built as a lightweight presentational helper for command menus
 *
 * @example
 * ```tsx
 * <CommandShortcut>⌘K</CommandShortcut>
 * ```
 *
 * @see {@link https://developer.mozilla.org/docs/Web/HTML/Element/span | HTML span element}
 */
declare const CommandShortcut: {
    ({ className, ...props }: Readonly<React.HTMLAttributes<HTMLSpanElement>>): React.JSX.Element;
    displayName: string;
};
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
//# sourceMappingURL=command.d.ts.map