import React from 'react';
import PropTypes from 'prop-types';
export declare class Search extends React.Component<any> {
    static propTypes: {
        value: PropTypes.Requireable<string>;
        name: PropTypes.Requireable<string>;
        inputDebounce: PropTypes.Requireable<number>;
        renderResult: PropTypes.Validator<(...args: any[]) => any>;
        searchProvider: PropTypes.Validator<(...args: any[]) => any>;
        onChange: PropTypes.Validator<(...args: any[]) => any>;
        onSearch: PropTypes.Validator<(...args: any[]) => any>;
        resultAction: PropTypes.Validator<(...args: any[]) => any>;
        maxResults: PropTypes.Requireable<number>;
        testAutomationId: PropTypes.Requireable<string>;
        textSearchPlaceholder: PropTypes.Requireable<string>;
        textNoResults: PropTypes.Requireable<string>;
        textShowAllResults: PropTypes.Requireable<string>;
        textSearchLabel: PropTypes.Requireable<string>;
        textClearLabel: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        value: any;
        name: any;
        inputDebounce: number;
        maxResults: number;
        readonly textSearchPlaceholder: string;
        readonly textShowAllResults: string;
        readonly textNoResults: string;
        readonly textSearchLabel: string;
        readonly textClearLabel: string;
        testAutomationId: string;
    };
    state: {
        focused: boolean;
        focusedItem: any;
        initial: boolean;
        results: any[];
    };
    componentDidUpdate(prevProps: any): void;
    resultRefs: any;
    inputRef: any;
    showAllRef: any;
    blurTimer: any;
    getResults(): any[];
    handleFocus: () => void;
    handleBlur: () => void;
    handleKeyboardNavigation: (e: any) => void;
    search: () => Promise<void>;
    debouncedSearch: any;
    clear: () => void;
    handleChange: ({ target }: {
        target: any;
    }) => void;
    handleFullSearch: () => void;
    handleResultAction: (item: any) => void;
    handleEnter: (e: any) => void;
    renderClearButton(): JSX.Element;
    renderSearchButton(): JSX.Element;
    renderSearchInput(): JSX.Element;
    renderResult: (item: any, index: any) => JSX.Element;
    renderResults(): JSX.Element;
    render(): JSX.Element;
}
