import { Iconable } from "@/lib/types";
import React, { Dispatch, ReactNode, SetStateAction } from "react";
import { ButtonProps } from "./ui/button";
export type OptionType = {
    value: string;
    label: ReactNode;
    Icon?: Iconable;
} | null;
export interface ComboBoxProps extends Omit<ButtonProps, "onChange" | "unselectable">, React.RefAttributes<HTMLButtonElement> {
    Icon?: Iconable;
    placeholder: string;
    empty?: ReactNode;
    loadingElement?: ReactNode;
    value?: string;
    setValue?: Dispatch<SetStateAction<string | null>>;
    onOpenChange?: Dispatch<SetStateAction<boolean>>;
    open?: boolean;
    onSearchChange?: (search: string) => void;
    name?: string;
    required?: boolean;
    loading?: boolean;
    defaultValue?: string;
    notCloseOnSelect?: boolean;
    listRef?: React.Ref<HTMLDivElement>;
    unselectable?: boolean;
    onChange?: React.ChangeEventHandler<HTMLInputElement>;
    onlyIconValue?: boolean;
    hideChevrons?: boolean;
}
export declare const ComboBox: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<ComboBoxProps>, "ref"> & React.RefAttributes<HTMLInputElement>>;
export declare const MultiselectComboBox: React.ForwardRefExoticComponent<Omit<React.PropsWithChildren<Omit<ComboBoxProps, "onlyIconValue"> & {
    value?: string[];
    defaultValue?: string[];
    setValue: React.Dispatch<React.SetStateAction<string[]>>;
}>, "ref"> & React.RefAttributes<HTMLInputElement>>;
export declare const ComboBoxItem: React.ForwardRefExoticComponent<Omit<Omit<{
    children?: React.ReactNode;
} & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
    ref?: React.Ref<HTMLDivElement>;
} & {
    asChild?: boolean;
}, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "value" | "onSelect"> & {
    disabled?: boolean;
    onSelect?: (value: string) => void;
    value?: string;
    keywords?: string[];
    forceMount?: boolean;
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
    Icon?: Iconable;
} & React.RefAttributes<HTMLDivElement>>;
export declare const ComboBoxGroup: React.ForwardRefExoticComponent<Omit<{
    children?: React.ReactNode;
} & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
    ref?: React.Ref<HTMLDivElement>;
} & {
    asChild?: boolean;
}, "asChild" | "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
    heading?: React.ReactNode;
    value?: string;
    forceMount?: boolean;
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
