import { EventEmitter, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
import { Observable } from 'rxjs';
import { AutocompleteComponent } from '../autocomplete/autocomplete.component';
import { DataSource } from '../datasource';
import * as i0 from "@angular/core";
export declare class AutocompleteListComponent implements ControlValueAccessor, Validator, OnInit {
    static idCounter: number;
    auto: AutocompleteListComponent;
    literals: {
        en: {
            placeholder: string;
            deleteLabelTemplate: string;
            addMessage: string;
        };
        es: {
            placeholder: string;
            deleteLabelTemplate: string;
            addMessage: string;
        };
    };
    internalDataSource: DataSource<any, string>;
    private autoPopulate;
    private _value;
    set value(val: any[]);
    get value(): any[];
    labels: string[];
    newEntry: any;
    canAdd: boolean;
    touched: boolean;
    private _lang;
    get lang(): string;
    set lang(l: string);
    inputId: string;
    dataSource: DataSource<any, any>;
    placeholder?: string;
    disabled: boolean;
    deleteLabelTemplate?: string;
    addMessage?: string;
    required: boolean;
    resolveLabelsFunction?: (instance: any, ids: any[]) => Observable<DataSource<any, string>>;
    populateFunction?: (instance: any, search: string) => Observable<DataSource<any, string>>;
    instance: any;
    valueChange: EventEmitter<any[]>;
    onChange: (value: any) => void;
    onTouched: () => void;
    writeValue(value: any): void;
    registerOnChange(onChange: any): void;
    registerOnTouched(onTouched: any): void;
    markAsTouched(): void;
    setDisabledState(disabled: boolean): void;
    registerOnValidatorChange(): void;
    validate(control: AbstractControl): ValidationErrors | null;
    ngOnInit(): void;
    ensureLabelsForIds(): void;
    removeAt(index: number): void;
    onValueChange(): void;
    onNewEntryChange(event: KeyboardEvent, auto: AutocompleteComponent): void;
    populateWith(searchText: string): void;
    updateCanAdd(): void;
    addNew(auto: AutocompleteComponent): void;
    getDeleteMessage(label: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteListComponent, "lux-autocomplete-list", never, { "value": { "alias": "value"; "required": false; }; "lang": { "alias": "lang"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "deleteLabelTemplate": { "alias": "deleteLabelTemplate"; "required": false; }; "addMessage": { "alias": "addMessage"; "required": false; }; "required": { "alias": "required"; "required": false; }; "resolveLabelsFunction": { "alias": "resolveLabelsFunction"; "required": false; }; "populateFunction": { "alias": "populateFunction"; "required": false; }; "instance": { "alias": "instance"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, false, never>;
}
