import { EventEmitter, OnInit, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { AbstractControl, NgControl } from '@angular/forms';
import { ValueAccessorBase } from '../input/core/value-accessor';
import { Subject } from 'rxjs';
import { ListItemInterface } from '../dropdownlist/interfaces/list-item';
export declare class TlMultiSelect extends ValueAccessorBase<any> implements OnInit, AfterViewInit, OnDestroy {
    private change;
    ngControl: NgControl;
    keyColor: string;
    color: string;
    data: any[];
    query: string;
    label: string;
    labelSize: string;
    labelTag: string;
    detail: string;
    icon: string;
    defaultColorTag: string;
    defaultIconTag: any;
    openFocus: boolean;
    detailOnTag: any;
    keyValue: any;
    itemHeight: string;
    labelPlacement: 'left' | 'top';
    debounceTime: number;
    itemAmount: number;
    minLengthSearch: number;
    placeholder: string;
    sortAlphabetically: boolean;
    onlyKeyValue: boolean;
    formControlName: string;
    disabled: boolean;
    getSelecteds: EventEmitter<any>;
    tagClick: EventEmitter<any>;
    tagRemove: EventEmitter<any>;
    input: any;
    typeOfData: string;
    isOpen: boolean;
    filteredItems: any[];
    tags: any[];
    showIcon: boolean;
    hasValidator: any;
    subject: Subject<any>;
    touched: boolean;
    required: boolean;
    private selectTag;
    private placeholderMessage;
    private dataSource;
    private subscription;
    constructor(change: ChangeDetectorRef, ngControl: NgControl);
    get control(): AbstractControl;
    ngOnInit(): void;
    setControl(): void;
    ngAfterViewInit(): void;
    onBackdropClick(): void;
    private listenControlChanges;
    private setDisabled;
    private handleTyping;
    private handleOpenOnFocus;
    private setRequired;
    private validateHasModel;
    private handleModelValueAsTags;
    private getCompare;
    private handleValidator;
    private sortFilteredItems;
    private validateTypeDataSource;
    isSimpleData(): boolean;
    private removeElementsForFilter;
    private validateProperties;
    private isQueryUndefined;
    private isDataUndefined;
    private isUndefinedDetail;
    private hasDetailOnTagProperty;
    private validateEmptySearch;
    handleKeyDown($event: any): void;
    private handleOverlayList;
    handleClickWrapper(): void;
    setInputFocus(): void;
    private handleIsOpen;
    private handleKeyDelete;
    private handleKeyBackspace;
    private handleArrowRight;
    private handleKeyEnter;
    private handleKeySpace;
    private handleKeyTab;
    private isSelectedTagEqualsLastTag;
    private handleArrowLeft;
    private hasTagSelected;
    private cleanSelected;
    handleInputFocus(): void;
    private setFilteredItems;
    private removeTagOfFilter;
    private setSelectTagAsTrue;
    handleArrowDown($event: any): void;
    addTag(item: ListItemInterface): void;
    private handleAllSelected;
    private stopEventKeyDown;
    private setModelValue;
    private deleteTagSelected;
    private getTagSelected;
    private removeTagSelectedOfTags;
    private addTagSelectedToFiltered;
    private searchItem;
    private filterOnData;
    private isValueMoreOrEqualThanMinLengthSearch;
    selectTagClick(index: any, item?: any): void;
    private changePlaceholder;
    private removeTagOnBackspace;
    removeTag(index: any, item?: any): void;
    private cleanInput;
    private hasTags;
    private isInputValueEqualsEmpty;
    private isTagsLengthMoreThanZero;
    private isFilteredLengthEqualsDataLength;
    ngOnDestroy(): void;
}
