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>[];
    };
    static getDerivedStateFromProps(nextProps: IAutoCompleteProps, prevState: IAutoCompleteState): {
        selectedSuggestion: never[];
        value?: undefined;
        suggestions?: undefined;
    } | {
        value: string | undefined;
        selectedSuggestion: IOption<string>;
        suggestions?: undefined;
    } | {
        suggestions: never[];
        selectedSuggestion?: undefined;
        value?: undefined;
    } | null;
    state: IAutoCompleteState;
    input: HTMLElement | null;
    loadSuggestionsDebounced: (value: string) => void;
    loadSuggestionsThrottled: (value: string) => void;
    constructor(props: IAutoCompleteProps);
    loadSuggestions: (value: string) => void;
    onSuggestionsFetchRequested: ({ value }: Autosuggest.SuggestionsFetchRequestedParams) => void;
    getSuggestions: (value: string, options: IOption[]) => IOption<string>[];
    onChangeInput: (_event: ChangeEvent<HTMLInputElement>, { newValue }: {
        newValue: string;
    }) => void;
    onSuggestionsClearRequested: () => void;
    getSuggestionValue: (suggestion: IOption) => string;
    onSuggestionSelected: (_event: FormEvent<HTMLInputElement>, data: Autosuggest.SuggestionSelectedEventData<IOption>) => void;
    onRefInput: (ref: HTMLInputElement | null, onAutosuggestRef: (ref: HTMLElement) => void) => void;
    shouldRenderSuggestions: (value: string) => boolean;
    render(): import("react").JSX.Element;
}
