import { ChangeEvent, Component, FormEvent } from "react";
import Autosuggest from "react-autosuggest";
import { IOption } from "../Menu";
import { IAutoCompleteProps, IAutoCompleteState } from "./types";
export declare class AutoComplete extends Component<IAutoCompleteProps, IAutoCompleteState> {
    static defaultProps: {
        width: string;
        bottomBind: boolean;
        valueLengthThrottled: number;
        valueLengthFilter: number;
        options: never[];
        valueLengthAsync: number;
        filterOptions: (value: string, options: IOption<string>[]) => IOption<string>[];
    };
    state: IAutoCompleteState;
    input: HTMLInputElement | null;
    loadSuggestionsDebounced: (value: string) => void;
    loadSuggestionsThrottled: (value: string) => void;
    constructor(props: IAutoCompleteProps);
    static getDerivedStateFromProps(nextProps: IAutoCompleteProps, prevState: IAutoCompleteState): {
        selectedSuggestions: IOption<string>[];
        suggestions?: undefined;
    } | {
        suggestions: never[];
        selectedSuggestions?: undefined;
    } | null;
    syncSelectedSuggestions(): void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: IAutoCompleteProps): void;
    loadSuggestions: (value: string) => void;
    getSuggestions: (value: string, options: IOption[]) => IOption<string>[];
    onSuggestionsFetchRequested: ({ value }: Autosuggest.SuggestionsFetchRequestedParams) => void;
    onChangeInput: (_event: ChangeEvent<HTMLInputElement>, { newValue }: {
        newValue: string;
    }) => void;
    onSuggestionsClearRequested: () => void;
    onSuggestionSelect: (suggestion: IOption) => void;
    onSuggestionSelected: (_event: FormEvent<HTMLInputElement>, data: Autosuggest.SuggestionSelectedEventData<IOption>) => void;
    onRefInput: (ref: HTMLInputElement | null, onAutosuggestRef: (ref: HTMLElement) => void) => void;
    onRemove: (text?: string | undefined) => void;
    shouldRenderSuggestions: (value: string) => boolean;
    renderMultiSelect: () => import("react").JSX.Element | null;
    renderIconAfter: () => import("react").JSX.Element | null;
    render(): import("react").JSX.Element;
}
