import { TreeNode } from 'primeng/api/treenode';
import { SmzTreeGroup, SmzTreeSourceTransform } from '../../modules/smz-trees/models/tree-state';
import { SmzNestedDataSourceTreeBuilder } from './nested-data-source-tree-builder';
import { SmzBuilderUtilities } from '../common/smz-builder-utilities';
import { SmzPropertyBasedDataSourceTreeBuilder } from './property-based-data-source-tree-builder';
export declare class SmzDataSourceTreeBuilder<TBuilder> extends SmzBuilderUtilities<SmzDataSourceTreeBuilder<TBuilder>> {
    private _builder;
    private _content;
    protected that: this;
    constructor(_builder: TBuilder, _content: SmzTreeSourceTransform);
    grouping(data: SmzTreeGroup): SmzDataSourceTreeBuilder<TBuilder>;
    flat(keyPropertyValue: string, labelProperty: string, overrides?: Partial<TreeNode<any>>): SmzDataSourceTreeBuilder<TBuilder>;
    flatWithRoot(rootName: string, keyPropertyValue: string, labelProperty: string, rootOverrides?: Partial<TreeNode<any>>, itemOverrides?: Partial<TreeNode<any>>): SmzDataSourceTreeBuilder<TBuilder>;
    nested(type: string): SmzNestedDataSourceTreeBuilder<TBuilder>;
    propertyBased(): SmzPropertyBasedDataSourceTreeBuilder<TBuilder>;
    get tree(): TBuilder;
}
