import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { MBaseSelect, MBaseSelectItem } from '../select/base-select/base-select';
import { MTextfield } from '../textfield/textfield';
export declare class MTypeahead extends ModulVue {
    readonly value: any;
    readonly results: MBaseSelectItem<unknown>[] | string[];
    readonly waitingResults: boolean;
    readonly filterResultsManually: boolean;
    readonly throttle: number;
    readonly maxLength: number;
    readonly lengthOverflow: boolean;
    readonly characterCount: boolean;
    readonly characterCountThreshold: number;
    readonly maxResults: number;
    readonly id: string;
    readonly listMaxHeight: string;
    readonly refBaseSelect: MBaseSelect;
    readonly refResearchInput: HTMLInputElement;
    readonly refMTextfield?: MTextfield;
    readonly validationMessageId: string;
    readonly inputLabelId: string;
    $refs: {
        mTextfield: MTextfield;
        result: HTMLUListElement;
        resultsList: HTMLElement;
    };
    isResultsPopupOpen: boolean;
    textfieldValue: string;
    filteredResults: MBaseSelectItem<unknown>[] | string[];
    throttleTimeoutActive: boolean;
    private throttleTimeout;
    private firstSelection;
    emitInput(_event: string): void;
    emitFilterResults(): void;
    onResultsChange(): void;
    onValueChange(value: string): void;
    onFocusChanged(newValue: boolean): void;
    onBaseSelectOpen(newValue: boolean): void;
    get hasResults(): boolean;
    get hasFilteredResults(): boolean;
    get hasTextfieldValue(): boolean;
    get resultsCouldBeDisplay(): boolean;
    get hasSomeAResultSelected(): boolean;
    get sortedResult(): MBaseSelectItem<unknown>[] | string[];
    get resultsAreStringArray(): boolean;
    get isWaitingResults(): boolean;
    onOpen(): void;
    onPortalAfterClose(): void;
    openResultsPopup(): void;
    closeResultsPopup(): void;
    onSelect(_option: any, index: number): void;
    isSelected(index: number): boolean;
    focusOnResearchInput(): void;
    onFilterResults(): void;
    getTextHighlight(item: MBaseSelectItem<unknown> | string): string;
    onInput(event: string): void;
    onKeydownEnter($event: KeyboardEvent): void;
    onKeydownDown($event: KeyboardEvent): void;
    onKeydownUp($event: KeyboardEvent): void;
    onKeydownTab($event: KeyboardEvent): void;
    onKeydownEsc($event: KeyboardEvent): void;
    onKeydownHome($event: KeyboardEvent): void;
    onKeydownEnd($event: KeyboardEvent): void;
    private createThrottleTimeout;
    private updateResults;
}
declare const TypeaheadPlugin: PluginObject<any>;
export default TypeaheadPlugin;
//# sourceMappingURL=typeahead.d.ts.map