import React from "react";
import type { AnyOption, AutocompleteLegacyProps, AutocompleteRebuiltProps, ExtraProps, Option, OptionLike } from "./Autocomplete.types";
import type { InputTextRef } from "../InputText";
export type { OptionLike } from "./Autocomplete.types";
export { type MenuOptionProps, BaseMenuOption, type BaseMenuOptionProps, MenuOption, BaseMenuGroupOption, type BaseMenuGroupOptionProps, } from "./Option";
export { type AnyOption, type AutocompleteProps, type BaseOption, type CustomOptionsMenuProp, type GroupOption, type OptionCollection, type Option, type MenuItem, type MenuSection, type MenuOptions, type MenuHeader, type MenuFooter, type MenuAction, type ExtraProps, defineMenu, } from "./Autocomplete.types";
export { KeyboardAction, getRequestedIndexChange, useKeyboardNavigation, useCustomKeyboardNavigation, } from "./useKeyboardNavigation";
export { useRepositionMenu } from "./useRepositionMenu";
export { BaseAutocompleteMenuWrapper, useAutocompleteMenu, } from "./Menu/MenuWrapper";
export { isOptionSelected, isOptionGroup } from "./Autocomplete.utils";
type AutocompleteShimProps = AutocompleteLegacyProps | AutocompleteRebuiltProps<OptionLike, boolean, ExtraProps, ExtraProps>;
declare function AutocompleteShim(props: AutocompleteShimProps, ref: React.Ref<InputTextRef | HTMLInputElement | HTMLTextAreaElement>): React.JSX.Element;
export declare const Autocomplete: {
    <T extends OptionLike = OptionLike, S extends object = ExtraProps, A extends object = ExtraProps>(props: AutocompleteRebuiltProps<T, false, S, A> & {
        version: 2;
        ref?: React.Ref<HTMLInputElement | HTMLTextAreaElement>;
        initialOptions?: never;
        getOptions?: never;
    }): ReturnType<typeof AutocompleteShim>;
    <T extends OptionLike = OptionLike, S extends object = ExtraProps, A extends object = ExtraProps>(props: AutocompleteRebuiltProps<T, true, S, A> & {
        version: 2;
        ref?: React.Ref<HTMLInputElement | HTMLTextAreaElement>;
        initialOptions?: never;
        getOptions?: never;
    }): ReturnType<typeof AutocompleteShim>;
    <GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption>(props: AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue> & {
        version?: 1;
        ref?: React.Ref<InputTextRef>;
        menu?: never;
    }): ReturnType<typeof AutocompleteShim>;
    (props: AutocompleteLegacyProps & {
        version?: 1;
        ref?: React.Ref<InputTextRef>;
        menu?: never;
    }): ReturnType<typeof AutocompleteShim>;
};
export type { AutocompleteLegacyProps, AutocompleteRebuiltProps, AutocompleteShimProps, };
