export default Autocomplete;
declare class Autocomplete extends React.Component<any, any, any> {
    constructor(props: any);
    state: {
        highlightedIndex: null;
        menuTop: number;
        menuLeft: number;
        menuWidth: number;
        isOpen: boolean;
    };
    itemRefs: {};
    menuRef: any;
    keyDownHandlers: {
        ArrowDown(event: any): void;
        ArrowUp(event: any): void;
        Enter(event: any): void;
        Escape(): void;
    };
    getInitialState(): {
        isOpen: boolean;
        highlightedIndex: null;
    };
    UNSAFE_componentWillMount(): void;
    _ignoreBlur: any;
    _performAutoCompleteOnUpdate: boolean | undefined;
    _performAutoCompleteOnKeyUp: boolean | undefined;
    UNSAFE_componentWillReceiveProps(nextProps: any): void;
    componentDidUpdate(prevProps: any, prevState: any): void;
    maybeScrollItemIntoView(): void;
    handleKeyDown(event: any): void;
    handleChange(event: any): void;
    handleKeyUp(): void;
    getFilteredItems(): any;
    maybeAutoCompleteText(): void;
    setMenuPositions(): void;
    highlightItemFromMouse(index: any): void;
    selectItemFromMouse(item: any): void;
    setIgnoreBlur(ignore: any): void;
    renderMenu(): React.FunctionComponentElement<{
        ref: (el: any) => void;
    }> | null;
    handleInputBlur(): void;
    handleInputFocus(): void;
    _ignoreClick: boolean | undefined;
    isInputFocused(): boolean;
    handleInputClick(): void;
    composeEventHandlers(internal: any, external: any): any;
    render(): React.JSX.Element;
    inputEl: HTMLInputElement | null | undefined;
}
declare namespace Autocomplete {
    namespace defaultProps {
        let value: string;
        let wrapperProps: {};
        namespace wrapperStyle {
            let display: string;
        }
        let inputProps: {};
        function onChange(): void;
        function onSelect(): void;
        function renderMenu(items: any, value: any, style: any): React.JSX.Element;
        function shouldItemRender(): boolean;
        namespace menuStyle {
            let borderRadius: string;
            let boxShadow: string;
            let background: string;
            let padding: string;
            let fontSize: string;
            let position: string;
            let overflow: string;
            let maxHeight: string;
        }
        let autoHighlight: boolean;
        function onMenuVisibilityChange(): void;
    }
    namespace propTypes {
        let autoHighlight_1: PropTypes.Requireable<boolean>;
        export { autoHighlight_1 as autoHighlight };
        export let debug: PropTypes.Requireable<boolean>;
        export let getItemValue: PropTypes.Validator<(...args: any[]) => any>;
        let inputProps_1: PropTypes.Requireable<object>;
        export { inputProps_1 as inputProps };
        export let items: PropTypes.Requireable<any[]>;
        let menuStyle_1: PropTypes.Requireable<object>;
        export { menuStyle_1 as menuStyle };
        export let onChange: PropTypes.Requireable<(...args: any[]) => any>;
        export let onFocus: PropTypes.Requireable<(...args: any[]) => any>;
        export let onMenuVisibilityChange: PropTypes.Requireable<(...args: any[]) => any>;
        export let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
        export let open: PropTypes.Requireable<boolean>;
        export let renderItem: PropTypes.Validator<(...args: any[]) => any>;
        export let renderMenu: PropTypes.Requireable<(...args: any[]) => any>;
        export let shouldItemRender: PropTypes.Requireable<(...args: any[]) => any>;
        export let sortItems: PropTypes.Requireable<(...args: any[]) => any>;
        let value_1: PropTypes.Requireable<any>;
        export { value_1 as value };
        let wrapperProps_1: PropTypes.Requireable<object>;
        export { wrapperProps_1 as wrapperProps };
        let wrapperStyle_1: PropTypes.Requireable<object>;
        export { wrapperStyle_1 as wrapperStyle };
    }
}
import React from 'react';
import PropTypes from 'prop-types';
