import * as React from 'react';
import { Dialog } from '@/components/ui/dialog';
type CommandFilter = (value: string, search: string) => number;
declare function Command({ className, filter, children, ...props }: React.ComponentProps<'div'> & {
    filter?: CommandFilter;
}): import("react/jsx-runtime").JSX.Element;
declare namespace Command {
    var displayName: string;
}
declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: Omit<React.ComponentProps<typeof Dialog>, 'children'> & {
    title?: string;
    description?: string;
    className?: string;
    showCloseButton?: boolean;
    children: React.ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare namespace CommandDialog {
    var displayName: string;
}
type CommandInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue'> & {
    /**
     * Render prop for custom input element. Receives props to spread onto your input.
     * @example
     * <CommandInput render={(props) => <MyCustomInput {...props} />} />
     */
    render?: (props: CommandInputRenderProps) => React.ReactElement;
};
type CommandInputRenderProps = {
    'data-slot': string;
    'cmdk-input': string;
    role: 'combobox';
    'aria-expanded': boolean;
    'aria-autocomplete': 'list';
    'aria-controls': string;
    'aria-activedescendant': string | undefined;
    value: string;
    onChange: React.ChangeEventHandler<HTMLInputElement>;
    onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;
};
declare function CommandInput({ className, render, onChange, onKeyDown, ...props }: CommandInputProps): import("react/jsx-runtime").JSX.Element;
declare namespace CommandInput {
    var displayName: string;
}
declare function CommandList({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
declare namespace CommandList {
    var displayName: string;
}
declare function CommandEmpty({ className, ...props }: React.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element | null;
declare namespace CommandEmpty {
    var displayName: string;
}
type CommandGroupProps = React.ComponentProps<'div'> & {
    heading?: React.ReactNode;
};
declare function CommandGroup({ className, heading, children, ...props }: CommandGroupProps): import("react/jsx-runtime").JSX.Element;
declare namespace CommandGroup {
    var displayName: string;
}
declare function CommandSeparator({ className, ...props }: React.ComponentProps<'hr'>): import("react/jsx-runtime").JSX.Element;
declare namespace CommandSeparator {
    var displayName: string;
}
type CommandItemProps = Omit<React.ComponentProps<'div'>, 'onSelect'> & {
    value: string;
    disabled?: boolean;
    onSelect?: (value: string) => void;
    keywords?: string[];
};
declare function CommandItem({ className, children, value, disabled, onSelect, keywords, onClick, onKeyDown, onMouseMove, ...props }: CommandItemProps): import("react/jsx-runtime").JSX.Element;
declare namespace CommandItem {
    var displayName: string;
}
declare function CommandShortcut({ className, ...props }: React.ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
declare namespace CommandShortcut {
    var displayName: string;
}
declare const CommandNamespace: typeof Command & {
    Dialog: typeof CommandDialog;
    Input: typeof CommandInput;
    List: typeof CommandList;
    Empty: typeof CommandEmpty;
    Group: typeof CommandGroup;
    Separator: typeof CommandSeparator;
    Item: typeof CommandItem;
    Shortcut: typeof CommandShortcut;
};
export { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandNamespace as Command, CommandSeparator, CommandShortcut, };
