import { Component } from 'react';
import { OmniToken } from '../OmniToken';
import { OmniOperator } from '../operators/OmniOperator';
import { OmniEntityReference } from '../types';
interface OmniFilterSuggestionWindowProps {
    visible: boolean;
    offset: number;
    token: OmniToken;
    filters: OmniEntityReference[];
    tokenInput: string;
    onUpdate(token: OmniToken | null): void;
    onComplete(token: OmniToken | null): void;
    inputElement: HTMLInputElement | null;
}
interface OmniFilterSuggestionWindowState {
    _operator: OmniOperator | null;
    _entityName: string | null;
    _entity: OmniEntityReference | null;
    _values: string[] | string | null;
    _awaitedValue: any;
    _waiting: boolean;
    _selectionList: OmniFilterSuggestion<any>[];
    _selectionIndex: number | null;
    _selectionWidget: JSX.Element | null;
}
declare type OmniFilterSuggestion<T> = {
    label: string;
    value: T;
    onSelect: (value: OmniFilterSuggestion<T>) => void;
};
export declare class OmniFilterSuggestionWindow extends Component<OmniFilterSuggestionWindowProps, OmniFilterSuggestionWindowState> {
    private _entities;
    private _isWaiting;
    private _hasInput;
    private _defaultEntity;
    constructor(props: OmniFilterSuggestionWindowProps);
    private _handleUpdate;
    private _handleCompleted;
    private refocus;
    private applyValue;
    componentDidUpdate(): void;
    private boldify;
    private _renderEntities;
    private _renderOperators;
    private _renderValues;
    private _inner;
    private _filteredSelections;
    private renderSuggestions;
    private _list_i;
    private _list;
    render(): JSX.Element;
}
export {};
