/// <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: {
        (component: IButton | null): void;
        current: IButton | null;
        value: IButton | null;
    };
    protected _searchForMoreButton: {
        (component: IButton | null): void;
        current: IButton | null;
        value: IButton | null;
    };
    protected _selectedElement: {
        (component: HTMLDivElement | null): void;
        current: HTMLDivElement | null;
        value: HTMLDivElement | null;
    };
    private SuggestionsItemOfProperType;
    private activeSelectedElement;
    constructor(suggestionsProps: ISuggestionsProps<T>);
    componentDidMount(): void;
    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;
    private _refocusOnSuggestions;
    private _onRemoveTypedSuggestionsItem;
}
