import { FlatTreeControl } from '@angular/cdk/tree';
import { OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
import { DisplayDensity } from '@metad/ocap-angular/core';
import { FlatTreeNode, Property, TreeNodeInterface } from '@metad/ocap-core';
import * as i0 from "@angular/core";
export type TreeTableColumn = Property & {
    cellTemplate?: TemplateRef<any>;
    pipe?: (value: any) => any;
    sticky?: boolean;
    stickyEnd?: boolean;
};
export declare class TreeTableComponent<T> implements OnInit, OnChanges {
    data: TreeNodeInterface<T>[];
    columns: Array<TreeTableColumn>;
    nameLabel: string;
    nameCellTemplate: TemplateRef<any>;
    displayDensity: DisplayDensity;
    initialLevel: number;
    get striped(): boolean;
    set striped(value: boolean);
    private _striped;
    get grid(): boolean;
    set grid(value: boolean);
    private _grid;
    get stickyHeaders(): string | boolean;
    set stickyHeaders(value: string | boolean);
    private _stickyHeaders;
    treeNodePadding: number;
    displayedColumns: string[];
    private transformer;
    treeControl: FlatTreeControl<FlatTreeNode<T>, FlatTreeNode<T>>;
    treeFlattener: MatTreeFlattener<TreeNodeInterface<T>, FlatTreeNode<T>, FlatTreeNode<T>>;
    dataSource: MatTreeFlatDataSource<TreeNodeInterface<T>, FlatTreeNode<T>, FlatTreeNode<T>>;
    unfold: boolean;
    ngOnInit(): void;
    ngOnChanges({ data, columns, displayDensity }: SimpleChanges): void;
    hasChild: (_: number, node: FlatTreeNode<T>) => boolean;
    toggleUnfold(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeTableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeTableComponent<any>, "ngm-tree-table", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "nameLabel": { "alias": "nameLabel"; "required": false; }; "nameCellTemplate": { "alias": "nameCellTemplate"; "required": false; }; "displayDensity": { "alias": "displayDensity"; "required": false; }; "initialLevel": { "alias": "initialLevel"; "required": false; }; "striped": { "alias": "striped"; "required": false; }; "grid": { "alias": "grid"; "required": false; }; "stickyHeaders": { "alias": "stickyHeaders"; "required": false; }; }, {}, never, never, false, never>;
}
