import React, { RefObject } from 'react';
import BaseInput from './BaseInput';
interface Option {
    caption: string;
    value: string;
}
interface OptionsGroup {
    title: string;
    options: Option[];
}
interface SelectedValue {
    selectedOption: Option;
    value: string;
}
export interface SuggestProps {
    options: OptionsGroup[];
    onSuggestSelected: (data: SelectedValue) => any;
    defaultSelectedOption?: Option;
    defaultInputValue?: string;
    onClear: () => any;
    onInputChange: (value: string) => any;
    overlayClassName?: string;
    overlayStyle?: object;
    getPopupContainer?: (triggerNode: Element) => HTMLElement;
    defaultSelectedOptionIndex?: number;
}
interface SearchInputState {
    arrowControlIndex: number;
    selectedOption: Option | undefined;
    suggestIsVisible: boolean;
    inputValue: string;
}
export default class SearchInputWithOptions extends React.Component<SuggestProps, SearchInputState> {
    state: {
        arrowControlIndex: number;
        selectedOption: undefined;
        suggestIsVisible: boolean;
        inputValue: string;
    };
    input: RefObject<BaseInput>;
    get currentInputValue(): string;
    resetInput: () => void;
    getInputWidth: () => string;
    render(): JSX.Element;
    private inputChangeCallback;
    private onInputChange;
    private onOptionSelect;
    private getOptionsContent;
    private getOptionByIndex;
    private getButtonProps;
    private onKeyDown;
    private onPressUpArrow;
    private onPressDownArrow;
    private getNewPosition;
    private onClear;
    private onVisibleChange;
}
export {};
//# sourceMappingURL=SearchInputWithOptions.d.ts.map