import { EventEmitter } from '@angular/core';
import { TreeTableItemShell } from './helpers/models';
import { ConditionalCellClassFunc, IsSelectedFunc$, SortFunction, TreeTableColumn, TreeTableItem } from './models';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class CngTreeTableComponent<T> {
    columns: TreeTableColumn[];
    sortFunction: SortFunction<T>;
    isSelectedFunc$: IsSelectedFunc$<T>;
    conditionalCellClassFunc: ConditionalCellClassFunc<T>;
    toggleExpandItem: EventEmitter<TreeTableItem<T>>;
    rowClick: EventEmitter<TreeTableItem<T>>;
    tableClass: string;
    treeTableItemShells: TreeTableItemShell<T>[];
    otherItems: TreeTableItem<T>[];
    constructor();
    insertLevelItemsFor(index: number, parentShell: TreeTableItemShell<T>, level: number): void;
    toggleExpand(event: any, shell: TreeTableItemShell<T>): void;
    localRowClick(shell: TreeTableItemShell<T>): void;
    isSelected$(shell: TreeTableItemShell<T>): Observable<boolean>;
    private updateVisibility;
    clearItems(): void;
    appendItems(items: TreeTableItem<T>[]): void;
    private isExistsChildrenFor;
    getChildren(id: string): TreeTableItem<T>[];
    removeItem(id: string): void;
    sort(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CngTreeTableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CngTreeTableComponent<any>, "cng-tree-table", never, { "columns": { "alias": "columns"; "required": false; }; "sortFunction": { "alias": "sortFunction"; "required": false; }; "isSelectedFunc$": { "alias": "isSelectedFunc$"; "required": false; }; "conditionalCellClassFunc": { "alias": "conditionalCellClassFunc"; "required": false; }; "tableClass": { "alias": "tableClass"; "required": false; }; }, { "toggleExpandItem": "toggleExpandItem"; "rowClick": "rowClick"; }, never, never, false, never>;
}
