import { DataModelTreeDisplayType } from './data-model-tree-enums';
import { OnInit, OnChanges, SimpleChanges, OnDestroy, EventEmitter } from '@angular/core';
import { MatAccordion } from '@angular/material/expansion';
import { Attribute } from '../data-model/attribute';
import { DataModel } from '../data-model/data-model';
import { FilterCategory } from '../filters/filter-category';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare class DataModelTreeComponent implements OnInit, OnChanges, OnDestroy {
    accordion: MatAccordion;
    dataModel: DataModel;
    categories: Array<FilterCategory>;
    displayMode: DataModelTreeDisplayType;
    attributeDropZoneList: Array<string>;
    attributeSelected: EventEmitter<Attribute>;
    attributeDeselected: EventEmitter<Attribute>;
    categorySelected: EventEmitter<FilterCategory>;
    categoryDeselected: EventEmitter<FilterCategory>;
    showSearchBox: boolean;
    searchInputText: string;
    searchedTerm: string;
    dataModelTreeDisplayType: typeof DataModelTreeDisplayType;
    searchSubscriber: Subject<string>;
    dataModelProcess: DataModel;
    /**
     * Constructor
     */
    constructor();
    /**
     * OnChange
     *
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * On Init Life cycle hook.
     */
    ngOnInit(): void;
    /**
     * Subscribers Should be implemented here
     */
    subscribers(): void;
    /**
     * OnDestroy life cycle hook.
     */
    ngOnDestroy(): void;
    /**
     * enableSearch() - enables the search input for the user
     */
    enableSearch(): void;
    /**
     * Show search bar
     */
    search(): void;
    /**
     * Apply Search On Fields
     *
     * @param filterText
     */
    applyFilter(): void;
    /**
     * Clear and Hide search Bar
     */
    clear(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataModelTreeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataModelTreeComponent, "lib-data-model-tree", never, { "dataModel": "dataModel"; "categories": "categories"; "displayMode": "displayMode"; "attributeDropZoneList": "attributeDropZoneList"; }, { "attributeSelected": "attributeSelected"; "attributeDeselected": "attributeDeselected"; "categorySelected": "categorySelected"; "categoryDeselected": "categoryDeselected"; }, never, never>;
}
