import { ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
import { DeviceDetectorService } from 'ngx-device-detector';
import { Subject, Subscription } from 'rxjs';
import { SelectItem } from 'tn-custom-primeng/api';
import { Dropdown } from 'tn-custom-primeng/dropdown';
import { MultiSelect } from 'tn-custom-primeng/multiselect';
import { ComponentBase } from '../../classes/base/component-base';
import { DialogModel, DropdownControlSchema, FormControlBase } from '../../classes/form-schema';
import { Filter } from '../../models/grid-info';
import { CrudService } from '../../services/crud.service';
export declare class DropdownComponent extends ComponentBase implements OnInit, OnDestroy {
    private _deviceDetectorService;
    el: ElementRef;
    input: ElementRef;
    buttonSetting: ElementRef;
    dropdown: Dropdown;
    multiSelect: MultiSelect;
    set showClear(value: boolean);
    disableDisplayFieldServerSearch: boolean;
    set filter(value: boolean);
    control: DropdownControlSchema;
    defaultLabel: string;
    appendTo: any;
    set dataSource(value: any[]);
    set value(value: any);
    data: any;
    defaultSelectedStyleClass: string;
    _itemSelectedStyleClass: string;
    set itemSelectedStyleClass(value: string);
    onInit: EventEmitter<any>;
    onChanged: EventEmitter<any>;
    onCollapse: EventEmitter<any>;
    onExpand: EventEmitter<any>;
    onDropdownClick: EventEmitter<any>;
    onShow: EventEmitter<any>;
    onShowSmartEvent: EventEmitter<any>;
    onHide: EventEmitter<any>;
    onHideSmartEvent: EventEmitter<any>;
    onFocus: EventEmitter<any>;
    onBlur: EventEmitter<any>;
    onReady: EventEmitter<any>;
    onDataSourceLoaded: EventEmitter<any>;
    valueChange: EventEmitter<any>;
    adjustValue: EventEmitter<any>;
    _unSubscribeAll: Subject<any>;
    dataSourceInternal: any[];
    dataSourceSelected: any[];
    selectedValueBefore: any;
    _value: any;
    _returnValue: any;
    funcReturnValue: (value: any) => {};
    tooltip: string;
    hideTransitionOptions: string;
    showTransitionOptions: string;
    inputElm: any;
    autofocusSelectedItem: boolean;
    getFilterOnServerSearch: Function;
    valueSearchServer: string;
    keyUp: Subject<KeyboardEvent>;
    subscription: Subscription;
    _hasLoadedDatasource: boolean;
    quickAddDialogModel: DialogModel;
    settingDialogModel: DialogModel;
    flashCacheParent: any[];
    filterFromParents: Filter[];
    dropdownOptions: any[];
    delayFilter: number;
    scrollContainer: any;
    timeoutScroll: any;
    firstScroll: any;
    loading: boolean;
    page: number;
    totalPage: number;
    constructor(_deviceDetectorService: DeviceDetectorService, injector: Injector, _crudService: CrudService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    setDefaultSetting(): void;
    getDelaySearchTime(): number;
    getAllParent(result: any, parentId: any): void;
    alreadyHasParent(options: any[], indexStart: number, parentId: string, level: number): boolean;
    private getParentIdFromItem;
    modifyOptionWhenFilter: (options: any) => void;
    modifyOptionWhenFilterMultiple: (options: any) => void;
    _modifyOptionWhenFilter(options: any): void;
    createFilterFunction(): void;
    getData(filterParents?: Filter[]): void;
    private combineDataSource;
    private appendDataSource;
    checkAndFireEvent(force?: boolean): void;
    setSelectedValue(): Promise<void>;
    private getValueSelectedMultiple;
    private appendValueFromDataSource;
    private adjustValueSelectedSingle;
    private findItemFromDataSource;
    checkReady(): void;
    reStructureItemObject(item: any): SelectItem;
    reStructureFlatObject(item: any): SelectItem<any>;
    private getItemValue;
    private getItemLabel;
    resetControl(): void;
    clearDatasource(): void;
    private _getData;
    private _getDataSource;
    private _getDataSourceByService;
    private filterProcess;
    getPanelClass(): string;
    getValueReturn(): any;
    checkInitedControl(): boolean;
    adjustValue2WayBinding(): void;
    fireChangedEvent(): void;
    fireAdjustValueEvent(): void;
    onChangeSelected(event: any): void;
    removeItem(evt: any, selectedItem: any): void;
    onDropdownClickHandler(evt: any): void;
    onClick($event: any): void;
    onShowHandler(evt: any): void;
    onPanelShowHandler(evt: any): void;
    handleScroll: (evt: any) => void;
    private getDataNextPage;
    private _insertTextboxAndFocus;
    handleLoaded(): void;
    onHideHandler(evt: any): void;
    handleFocus(evt: any): void;
    handleBlur(evt: any): void;
    showFormQuickAdd(): void;
    handleCancel: () => void;
    handleSaved: () => void;
    showFormSetting(): void;
    handleSavedSetting(): void;
    createSearchSubscription(): void;
    checkDisabled(control: FormControlBase): boolean;
}
//# sourceMappingURL=dropdown.component.d.ts.map