/// <reference types="react" />
import { BaseComponent } from '../../../Utilities';
import { IButton } from '../../../Button';
import { ISuggestionItemProps, ISuggestionsProps } from './Suggestions.types';
export declare enum SuggestionActionType {
    none = 0,
    forceResolve = 1,
    searchMore = 2,
}
export interface ISuggestionsState {
    selectedActionType: SuggestionActionType;
}
export declare class SuggestionsItem<T> extends BaseComponent<ISuggestionItemProps<T>, {}> {
    render(): JSX.Element;
}
export declare class Suggestions<T> extends BaseComponent<ISuggestionsProps<T>, ISuggestionsState> {
    protected _forceResolveButton: IButton;
    protected _searchForMoreButton: IButton;
    protected _selectedElement: HTMLDivElement;
    private SuggestionsItemOfProperType;
    constructor(suggestionsProps: ISuggestionsProps<T>);
    componentDidUpdate(): void;
    render(): JSX.Element;
    /**
     * Returns true if the event was handled, false otherwise
     */
    tryHandleKeyDown(keyCode: number, currentSuggestionIndex: number): boolean;
    hasSuggestedAction(): boolean;
    hasSuggestedActionSelected(): boolean;
    executeSelectedAction(): void;
    focusAboveSuggestions(): void;
    focusBelowSuggestions(): void;
    focusSearchForMoreButton(): void;
    scrollSelected(): void;
    private _renderSuggestions();
    private _getMoreResults();
    private _forceResolve();
    private _shouldShowForceResolve();
    private _onClickTypedSuggestionsItem(item, index);
    private _refocusOnSuggestions(keyCode);
    private _onRemoveTypedSuggestionsItem(item, index);
}
