import { EventEmitter, QueryList, TemplateRef } from '@angular/core';
import { CellHostDirective } from '../../directive';
import { INgmExpansion } from '../../model';
import { INgmDataSource } from './../../model/datasource-model';
import { INgmTreeGridConfig } from './../../model/tree-grid-config';
import * as i0 from "@angular/core";
export declare class TreeGridComponent<T> {
    /** When user clicks on arrow to expand a row, this emitter emits an event */
    expand: EventEmitter<INgmExpansion>;
    /** When user clicks on arrow to collapse a row, this emitter emits an event */
    collapse: EventEmitter<INgmExpansion>;
    dataSource: INgmDataSource<T>;
    config: INgmTreeGridConfig;
    cellContents: QueryList<TemplateRef<any>>;
    headerContents?: QueryList<TemplateRef<any>>;
    headerPanes: QueryList<CellHostDirective>;
    filterText: string;
    filteredData: T[];
    showGrid: boolean;
    constructor();
    ngAfterContentInit(): void;
    onExpand(e: INgmExpansion): void;
    onCollapse(e: INgmExpansion): void;
    refreshGrid(): void;
    onSearch(text: string): void;
    /**
     * There are two important things to consider in a tree search..
     * If a node contains that search, It should be in final result.
     * If a node doesn't contain the searched text, but its children do, It should also be in final result.
     * Otherwise it should be filtered out of the result.
     */
    filterTree(): void;
    filtering(node: T, text: string): T;
    hasIncludedSearchTextInChildren(node: any, searchText: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeGridComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeGridComponent<any>, "ngm-tree-grid", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "expand": "expand"; "collapse": "collapse"; }, ["cellContents", "headerContents"], never, false, never>;
}
