import { type ComponentProps, type ReactNode } from "react";
import { Popover, PopoverContent } from "../popover/popover";
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../command/command";
type ComboboxData = {
    label: string;
    value: string;
};
export type ComboboxProps = ComponentProps<typeof Popover> & {
    data: ComboboxData[];
    type: string;
    defaultValue?: string;
    value?: string;
    onValueChange?: (value: string) => void;
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    /** Label text - always use this built-in prop instead of external <Label> wrapper for proper accessibility */
    label?: string;
    description?: string;
};
export declare const Combobox: {
    ({ data, type, defaultValue, value: controlledValue, onValueChange: controlledOnValueChange, defaultOpen, open: controlledOpen, onOpenChange: controlledOnOpenChange, label, description, children, ...props }: ComboboxProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export type ComboboxTriggerProps = Omit<ComponentProps<"button">, "ref"> & {
    size?: "sm" | "default";
};
export declare const ComboboxTrigger: ({ children, size, ...props }: ComboboxTriggerProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxContentProps = ComponentProps<typeof Command> & {
    popoverOptions?: ComponentProps<typeof PopoverContent>;
};
export declare const ComboboxContent: ({ popoverOptions, ...props }: ComboboxContentProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxInputProps = ComponentProps<typeof CommandInput> & {
    value?: string;
    defaultValue?: string;
    onValueChange?: (value: string) => void;
};
export declare const ComboboxInput: ({ value: controlledValue, defaultValue, onValueChange: controlledOnValueChange, ...props }: ComboboxInputProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxListProps = ComponentProps<typeof CommandList>;
export declare const ComboboxList: (props: ComboboxListProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxEmptyProps = ComponentProps<typeof CommandEmpty>;
export declare const ComboboxEmpty: ({ children, ...props }: ComboboxEmptyProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxGroupProps = ComponentProps<typeof CommandGroup>;
export declare const ComboboxGroup: (props: ComboboxGroupProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxItemProps = ComponentProps<typeof CommandItem>;
export declare const ComboboxItem: (props: ComboboxItemProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxSeparatorProps = ComponentProps<typeof CommandSeparator>;
export declare const ComboboxSeparator: (props: ComboboxSeparatorProps) => import("react/jsx-runtime").JSX.Element;
export type ComboboxCreateNewProps = {
    onCreateNew: (value: string) => void;
    children?: (inputValue: string) => ReactNode;
    className?: string;
};
export declare const ComboboxCreateNew: ({ onCreateNew, children, className, }: ComboboxCreateNewProps) => import("react/jsx-runtime").JSX.Element | null;
export {};
//# sourceMappingURL=combobox.d.ts.map