import { LiveAnnouncer } from "@angular/cdk/a11y";
import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges } from "@angular/core";
import { OptionValueType } from "../../overlay/types";
import { BaseSelectV2 } from "../base-select-v2";
import { MarkAsSelectedItemDirective } from "../mark-as-selected-item.directive";
import { SelectV2OptionComponent } from "../option/select-v2-option.component";
import { OptionKeyControlService } from "../option-key-control.service";
import { SelectedItemsKeyControlService } from "../selected-items-key-control.service";
import { InputValueTypes } from "../types";
import * as i0 from "@angular/core";
export declare class ComboboxV2Component extends BaseSelectV2 implements AfterContentInit, OnDestroy, OnChanges, AfterViewInit {
    private selectedItemsKeyControlService;
    liveAnnouncer: LiveAnnouncer;
    /** Function that maps an Option's control value to its display value */
    displayWith: ((value: any) => string) | null;
    /** Whether the control for removing value enabled */
    isRemoveValueEnabled: boolean;
    /** Whether to populate the remainder of the text being typed */
    isTypeaheadEnabled: boolean;
    /** Emits event whether options are presented after filtering */
    searchEmpty: EventEmitter<boolean>;
    /** Emits event whether the typed text is unique among presented options */
    canCreateOption: EventEmitter<boolean>;
    /** Grabs and init keyboard navigation service for the "Selected Items" */
    set selectedItems(elems: QueryList<MarkAsSelectedItemDirective>);
    /** Value of the Combobox Input */
    inputValue: string | number;
    /** Text of the Clear Button tooltip */
    clearValueButtonTooltip: string;
    constructor(elRef: ElementRef, optionKeyControlService: OptionKeyControlService<SelectV2OptionComponent>, cdRef: ChangeDetectorRef, selectedItemsKeyControlService: SelectedItemsKeyControlService, liveAnnouncer: LiveAnnouncer);
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /** Handles behavior on mouseup event */
    onMouseUp(target: HTMLElement): void;
    /** Handles behavior on keydown event */
    onKeyDown(event: KeyboardEvent): void;
    /** Toggles dropdown and removes focus from Selected Items */
    toggleDropdown(): void;
    /** Selects specific option and set its value to the model */
    selectOption(option: SelectV2OptionComponent): void;
    /**
     * @param  {OptionValueType} item   Deselect using value
     * @param  {number} item            Deselect using index in multiselect values array
     * Deselects item from Selected Items by index or value
     */
    deselectItem(item: OptionValueType | number): void;
    /** Handles behavior on Input value change */
    handleInput(inputValue: InputValueTypes): void;
    /** Selects text in Input */
    selectTextInInput(): void;
    /** Sets value to the model */
    writeValue(value: OptionValueType | OptionValueType[]): void;
    /** Clears up Combobox to the initial value */
    clearValue(event?: Event, keepDropdown?: boolean): void;
    ngOnDestroy(): void;
    protected handleValueChange(value: OptionValueType | OptionValueType[] | null): void;
    private setInputValue;
    private filterItems;
    private emitSearchResults;
    private isInputValueUnique;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComboboxV2Component, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ComboboxV2Component, "nui-combobox-v2", never, { "displayWith": { "alias": "displayWith"; "required": false; }; "isRemoveValueEnabled": { "alias": "isRemoveValueEnabled"; "required": false; }; "isTypeaheadEnabled": { "alias": "isTypeaheadEnabled"; "required": false; }; }, { "searchEmpty": "searchEmpty"; "canCreateOption": "canCreateOption"; }, ["selectedItems"], ["[selectedItems]", "*"], false, never>;
}
