import { EventEmitter, OnInit, SimpleChange } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatSelect, MatSelectChange } from '@angular/material/select';
export interface DropdownConfiguration<T> {
    label: string;
    type: 'single' | 'multi';
    parentKeyToDisplay: string;
    children?: {
        key: string;
        keyToDisplay: string;
    };
    valueToEmit: 'object' | string;
    keyUsedForSearch?: string;
    preSelected?: number | number[] | {
        parentIndex: number;
        childIndex: number;
    } | {
        parentIndex: number;
        childIndex: number;
    }[];
    showDeselect?: boolean;
}
export declare class CustomDropdownComponent implements OnInit {
    customSelect: any;
    configuration: DropdownConfiguration<any>;
    datas: any[];
    valueChanges: EventEmitter<any[] | {
        [key: string]: any;
    }>;
    dropdownSearchControl: FormControl;
    dropdownControl: FormControl;
    filteredList: any[];
    selectedList: any;
    result: any;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: {
        [key: string]: SimpleChange;
    }): void;
    selectAllToggle(event: MatSelect, selectAll?: boolean): void;
    private updatePreSelectValue;
    onOptionClick(event: MatSelectChange): void;
    private listenToControls;
    private filterDataList;
    private getChildfrom;
    getUniqueData(): any[];
}
