import { Merge, Renderable, Signal, TNode, Value } from '@tempots/dom';
import { InputOptions } from './input-options';
import { BaseControllerOptions, ControllerOptions } from '../control';
import { DropdownOption } from './option';
export type ComboboxOptions<T> = Merge<InputOptions<T>, {
    loadOptions: (search: string) => Promise<DropdownOption<T>[]>;
    renderOption: (value: Signal<T>) => TNode;
    renderValue?: (value: Signal<T>) => TNode;
    equality?: (a: T, b: T) => boolean;
    placeholder?: Value<string>;
    searchPlaceholder?: Value<string>;
    debounceMs?: number;
}>;
export declare const ComboboxInput: <T>(options: ComboboxOptions<T>) => Renderable;
export declare const BaseComboboxControl: <T>(options: BaseControllerOptions<T, ComboboxOptions<T>>) => Renderable;
export declare const ComboboxControl: <T>(options: ControllerOptions<T, ComboboxOptions<T>>) => Renderable;
