import { type EditableHTMLElement } from "../form/utils.js";
import { type AutocompleteImplementation, type AutocompleteMultiSelectImplementation, type AutocompleteMultiSelectOptions, type AutocompleteOption, type AutocompleteOptions, type AutocompleteSingleSelectImplementation, type AutocompleteSingleSelectOptions } from "./types.js";
/**
 * This is the single select autocomplete implementation.
 *
 * @see {@link https://react-md.dev/components/autocomplete | Autocomplete Demos}
 * @since 6.0.0
 */
export declare function useAutocomplete<Option extends AutocompleteOption, ComboboxEl extends EditableHTMLElement = HTMLInputElement, PopupEl extends HTMLElement = HTMLElement>(options: AutocompleteSingleSelectOptions<Option, ComboboxEl, PopupEl>): AutocompleteSingleSelectImplementation<Option, ComboboxEl, PopupEl>;
/**
 * This is the multiselect autocomplete implementation.
 *
 * @see {@link https://react-md.dev/components/autocomplete | Autocomplete Demos}
 * @since 6.0.0
 */
export declare function useAutocomplete<Option extends AutocompleteOption, ComboboxEl extends EditableHTMLElement = HTMLInputElement, PopupEl extends HTMLElement = HTMLElement>(options: AutocompleteMultiSelectOptions<Option, ComboboxEl, PopupEl>): AutocompleteMultiSelectImplementation<Option, ComboboxEl, PopupEl>;
/**
 * This is an internal override implementation where the types are less strict
 * so it can be used with the `Autocomplete` component.
 *
 * @see {@link https://react-md.dev/components/autocomplete | Autocomplete Demos}
 * @since 6.0.0
 * @internal
 */
export declare function useAutocomplete<Option extends AutocompleteOption, ComboboxEl extends EditableHTMLElement = HTMLInputElement, PopupEl extends HTMLElement = HTMLElement>(options: AutocompleteOptions<Option, ComboboxEl, PopupEl>): AutocompleteImplementation<Option, ComboboxEl, PopupEl>;
