import { ElementRef, OnChanges, EventEmitter, ChangeDetectorRef, SimpleChanges, OnInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { DropdownConfig } from './interfaces/dropdown.config';
import { ListItemInterface } from './interfaces/list-item';
import { ValueAccessorBase } from '../input/core/value-accessor';
import * as i0 from "@angular/core";
export declare class TlDropDownList extends ValueAccessorBase<any> implements OnInit, OnChanges {
    private changes;
    ngControl: NgControl;
    set data(data: any[]);
    get data(): any[];
    keyText: any;
    icon: any;
    label: string;
    debounceTime: number;
    disabled: boolean;
    labelPlacement: string;
    labelSize: string;
    itemHeight: string;
    keyValue: any;
    maxHeight: string;
    identifier: any;
    defaultOption: boolean;
    groupBy: any;
    width: string;
    placeholder: string;
    modelMode: 'string' | 'object';
    searchOnList: boolean;
    selectItem: EventEmitter<any>;
    input: ElementRef;
    typeOfData: string;
    selectedDescription: string;
    _data: any;
    indexOptionSelectedModel: any;
    optionSelected: any;
    isOpen: boolean;
    datasource: any[];
    isLoading: boolean;
    constructor(dropdownConfig: DropdownConfig, changes: ChangeDetectorRef, ngControl: NgControl);
    get control(): import("@angular/forms").AbstractControl<any, any>;
    ngOnInit(): void;
    setControl(): void;
    onSearch(searchTextValue: any): void;
    getItemText(item: any): any;
    onKeyDown($event: any): void;
    handleEscape($event: any): void;
    getNativeInput(): any;
    onFindByLetter(value: string): void;
    onSelectOption($event: ListItemInterface): void;
    onDefaultOption(): void;
    private isModelModeString;
    handleOpenList($event: any): void;
    onBackdropClick(): void;
    private initializeComponent;
    private setUpComponent;
    private validateData;
    handleCloseDropdown(): void;
    private setInputFocus;
    private isSimpleData;
    private listenModelChange;
    private handleKeyModelValue;
    private getModelValue;
    private setOptions;
    private getCompareModel;
    private getCompare;
    private getDescription;
    private handleSelectInLetter;
    private stopEvent;
    private selectByFirst;
    private getKeyInputLowerCase;
    private getFirstLetterOfItem;
    ngOnChanges({ data }: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlDropDownList, [{ optional: true; }, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlDropDownList, "tl-dropdown-list", never, { "data": "data"; "keyText": "keyText"; "icon": "icon"; "label": "label"; "debounceTime": "debounceTime"; "disabled": "disabled"; "labelPlacement": "labelPlacement"; "labelSize": "labelSize"; "itemHeight": "itemHeight"; "keyValue": "keyValue"; "maxHeight": "maxHeight"; "identifier": "identifier"; "defaultOption": "defaultOption"; "groupBy": "groupBy"; "width": "width"; "placeholder": "placeholder"; "modelMode": "modelMode"; "searchOnList": "searchOnList"; }, { "selectItem": "selectItem"; }, never, never, false, never>;
}
//# sourceMappingURL=dropdownlist.d.ts.map