import { AfterViewInit, ChangeDetectorRef, ElementRef, Injector, OnChanges, Renderer2, SimpleChanges } from '@angular/core';
import { AsyncValidatorFn, FormBuilder, NgControl, ValidatorFn, UntypedFormControl } from '@angular/forms';
import { CommonFormControl } from '../../form';
import { ComponentSize } from '../../internal/types';
import { Bem } from '../../internal/utils';
import * as i0 from "@angular/core";
export declare const INPUT_ERROR_KEY = "input_data_error";
export declare class TagsInputComponent extends CommonFormControl<string[]> implements AfterViewInit, OnChanges {
    private readonly fb;
    private readonly renderer;
    private readonly injector;
    bem: Bem;
    placeholder: string;
    size: ComponentSize;
    clearable: boolean | '';
    allowRepeat: boolean | '';
    allowEmpty: boolean | '';
    readonlyTags: string[] | readonly string[];
    maxRowCount: number;
    customRowHeight: number;
    _inputValidator: ValidatorFn;
    _inputAsyncValidator: AsyncValidatorFn;
    set inputValidator(fn: ValidatorFn | ValidatorFn[]);
    get inputValidator(): ValidatorFn | ValidatorFn[];
    set inputAsyncValidator(fn: AsyncValidatorFn | AsyncValidatorFn[]);
    get inputAsyncValidator(): AsyncValidatorFn | AsyncValidatorFn[];
    inputRef: ElementRef<HTMLInputElement>;
    inputValueMirror: ElementRef<HTMLElement>;
    get hostPosition(): string;
    get hostDisplay(): string;
    get maxHeight(): string;
    private readonly withMaxRowCount;
    focused: boolean;
    model: string[];
    readonly inputControl: UntypedFormControl;
    controlContainer: NgControl;
    get rootClass(): string;
    get tagSize(): "medium" | "mini";
    get inputClass(): string;
    constructor(cdr: ChangeDetectorRef, fb: FormBuilder, renderer: Renderer2, injector: Injector);
    ngOnChanges({ inputValidator, inputAsyncValidator, disabled, }: SimpleChanges): void;
    ngAfterViewInit(): void;
    onRemove(index: number): void;
    onInput(): void;
    onKeyDown(event: KeyboardEvent): void;
    onInputFocus(): void;
    onInputBlur(event: Event): void;
    trackByValue(_: number, value: string): string;
    protected valueIn(v: string[]): string[];
    private sortByReadonly;
    private pushValue;
    private syncControlStatus;
    private removeInputControlError;
    private clearInput;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagsInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagsInputComponent, "aui-tags-input", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "allowRepeat": { "alias": "allowRepeat"; "required": false; }; "allowEmpty": { "alias": "allowEmpty"; "required": false; }; "readonlyTags": { "alias": "readonlyTags"; "required": false; }; "maxRowCount": { "alias": "maxRowCount"; "required": false; }; "customRowHeight": { "alias": "customRowHeight"; "required": false; }; "inputValidator": { "alias": "inputValidator"; "required": false; }; "inputAsyncValidator": { "alias": "inputAsyncValidator"; "required": false; }; }, {}, never, never, true, never>;
}
