import React from 'react';
import type { IFiltersLayout } from './Filters';
import type { IFilterType } from './SearchFilterTypeRegistry';
import type { ITag } from '../../widgets';
import './search.less';
export interface ISearchProps {
    params: {
        [key: string]: any;
    };
    onChange: (tags: ITag[]) => void;
}
export interface ISearchState {
    activeFilter: IFilterType;
    isFocused: boolean;
    isOpen: boolean;
    layouts: IFiltersLayout[];
    tags: ITag[];
}
export declare class Search extends React.Component<ISearchProps, ISearchState> {
    private filterTypes;
    private keys;
    private tagElements;
    private inputElement;
    private mouseDownFired;
    constructor(props: ISearchProps);
    componentWillReceiveProps(props: ISearchProps): void;
    private reorderFilterTypesForSearch;
    private buildTagsFromParams;
    private isLongEnoughIfKeyword;
    private hasModifier;
    private getModifier;
    private getSearchText;
    private buildTagFromInputString;
    private getActiveFilterIndex;
    private getActiveFilterText;
    private handleTagListUpdate;
    private refCallback;
    private handleBlur;
    private handleChange;
    private handleDelete;
    private handleFocus;
    private navigateUp;
    private navigateDown;
    private navigate;
    private handleFilterSelection;
    private handleKeyUpFromInput;
    private handleKeyUpFromTag;
    private filterClicked;
    private handleKeyUp;
    private handleMouseDown;
    private handleClearClick;
    render(): React.ReactElement<Search>;
}
