/// <reference types="react" />
import PropTypes from 'prop-types';
import _ from 'lodash';
import { FormControl } from './FormControl';
export declare class AutosuggestControl extends FormControl<any> {
    static propTypes: {
        values: PropTypes.Requireable<any[]>;
        getSuggestionValue: PropTypes.Validator<(...args: any[]) => any>;
        getSuggestionText: PropTypes.Validator<(...args: any[]) => any>;
        valueMatcher: PropTypes.Requireable<(...args: any[]) => any>;
        placeholder: PropTypes.Requireable<string>;
        maxSuggestionsCount: PropTypes.Requireable<number>;
        minCharactersToShowSuggestions: PropTypes.Requireable<number>;
        disabled: PropTypes.Requireable<boolean>;
        allowMismatching: PropTypes.Requireable<boolean>;
        /**
         * @function (query: String, innerFilter: function(values))
         * @returns { Array| Promise<Array>}
         * */
        getSuggestions: PropTypes.Requireable<(...args: any[]) => any>;
        onSubmitChanges: PropTypes.Requireable<(...args: any[]) => any>;
        autoFocus: PropTypes.Requireable<boolean>;
        onInputChange: PropTypes.Requireable<(...args: any[]) => any>;
        suggestionPromptLabel: PropTypes.Requireable<string>;
        noSuggestionPromptLabel: PropTypes.Requireable<string>;
        name: PropTypes.Validator<string>;
        hasFormGroupContainer: PropTypes.Requireable<boolean>;
        hasFeedbackBlock: PropTypes.Requireable<boolean>;
        testAutomationId: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        maxSuggestionsCount: number;
        minCharactersToShowSuggestions: number;
        valueMatcher(inputValue: any, value: any): boolean;
        allowMismatching: boolean;
        onInputChange: (v: any) => any;
        suggestionPromptLabel: {
            one: string;
            other: string;
        };
        noSuggestionPromptLabel: {
            one: string;
            other: string;
        };
        hasFormGroupContainer: boolean;
        hasFeedbackBlock: boolean;
        testAutomationId: string;
    };
    constructor(props: any, context: any);
    componentWillReceiveProps(nextProps: any): void;
    componentDidUpdate(oldProps: any, oldState: any): void;
    onChange(event: any, { newValue }: {
        newValue: any;
    }): void;
    onSubmitChanges(newValue: any): void;
    handleFocus: () => void;
    handleBlur: (event: any) => void;
    onKeyPress(event: any): void;
    onSuggestionSelected(event: any, { suggestionValue }: {
        suggestionValue: any;
    }): void;
    onSuggestionsFetchRequested({ value }: {
        value: any;
    }): Promise<void>;
    playSuggestionPromptMessage: ((count: any) => void) & _.Cancelable;
    onSuggestionsClearRequested(): void;
    filterSuggestions: (query: any, values: any) => {}[];
    getSuggestions(query: any): any;
    renderSuggestion(value: any, { query }: {
        query: any;
    }): JSX.Element;
    renderInputComponent: (props: any) => JSX.Element;
    renderSuggestionsContainer: (renderOptions: any) => JSX.Element;
    render(): JSX.Element;
}
