import { OnInit, EventEmitter, ChangeDetectorRef, ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { OptionsConfigType, OptionsList, OptionType } from './tags-input-field.types';
import { TagsInputFieldService } from './tags-input-field.service';
import { NotifierService } from '../notifier';
import * as i0 from "@angular/core";
export declare class TagsInputFieldComponent implements OnInit, ControlValueAccessor {
    private notifier;
    private tagsInputFieldService;
    private changeDetectorRef;
    maxTags: number;
    separator: string;
    removeLastOnBackspace: boolean;
    canDeleteTags: boolean;
    disable: boolean;
    placeholder: string;
    connectedTagsList: Array<string>;
    optionsConfig: OptionsConfigType | null;
    onTagsChanged: EventEmitter<any>;
    onMaxTagsReached: EventEmitter<any>;
    input: ElementRef;
    tagsArrayOutput: Array<string>;
    tagsArray: OptionsList;
    focusElement: number;
    private onTouchedCallback;
    private onChangeCallback;
    private isOptions;
    isOptionObject: boolean;
    optionList: OptionsList;
    private optionListInitial;
    private optionListAllInitial;
    openDropdown: boolean;
    constructor(notifier: NotifierService, tagsInputFieldService: TagsInputFieldService, changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewChecked(): void;
    keyDownHandler(tagInput: HTMLInputElement, $event: any): void;
    keyUpHandler(tagInput: HTMLInputElement, $event: any): void;
    getPlaceHolder(): string;
    private tagsChanged;
    private removeLastTag;
    private getUpdatedOptionList;
    private findTagInOptionsList;
    private createTags;
    private resetInput;
    private incrementSizeOfInput;
    private addTagValue;
    removeTag(tagToRemove: OptionType, event?: Event): void;
    maximumOfTagsReached(): boolean;
    isDeletable(tag: OptionType): boolean;
    getContrastColor(hex: string): string;
    onLocationFocus(): void;
    onLocationBlur(): void;
    onArrowUp(): void;
    onArrowDown(): void;
    addClickedItem($event: any, index: number): void;
    writeValue(value: Array<string>): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagsInputFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagsInputFieldComponent, "tags-input", never, { "maxTags": "maxTags"; "separator": "separator"; "removeLastOnBackspace": "removeLastOnBackspace"; "canDeleteTags": "canDeleteTags"; "disable": "disable"; "placeholder": "placeholder"; "connectedTagsList": "connectedTagsList"; "optionsConfig": "optionsConfig"; }, { "onTagsChanged": "onTagsChanged"; "onMaxTagsReached": "onMaxTagsReached"; }, never, never, false>;
}
