import { SmzTreeNestedData, SmzTreeSourceTransform } from '../../modules/smz-trees/models/tree-state';
import { SmzBuilderUtilities } from '../common/smz-builder-utilities';
import { SmzDataSourceTreeBuilder } from './data-source-tree-builder';
export declare class SmzNestedDataSourceTreeBuilder<TBuilder> extends SmzBuilderUtilities<SmzNestedDataSourceTreeBuilder<TBuilder>> {
    private _content;
    private _dataSourceBuilder;
    protected that: this;
    private _nestedConfig;
    constructor(_content: SmzTreeSourceTransform, _dataSourceBuilder: SmzDataSourceTreeBuilder<TBuilder>, type: string);
    addChild(key: string): SmzNestedChildTreeBuilder<SmzNestedDataSourceTreeBuilder<TBuilder>>;
    makeAsGroup(label: string): SmzNestedGroupTreeBuilder<SmzNestedDataSourceTreeBuilder<TBuilder>>;
    setIcon(icon: string): SmzNestedDataSourceTreeBuilder<TBuilder>;
    setType(type: string): SmzNestedDataSourceTreeBuilder<TBuilder>;
    setDataAsSimpleNamedEntity(): SmzNestedDataSourceTreeBuilder<TBuilder>;
    disableSelection(): SmzNestedDataSourceTreeBuilder<TBuilder>;
    conditionalSelection(callback: (item: any) => boolean): SmzNestedDataSourceTreeBuilder<TBuilder>;
    get dataSource(): SmzDataSourceTreeBuilder<TBuilder>;
}
export declare class SmzNestedChildTreeBuilder<TBuilder> extends SmzBuilderUtilities<SmzNestedChildTreeBuilder<TBuilder>> {
    private _builder;
    private _nestedConfig;
    protected that: this;
    constructor(_builder: TBuilder, _nestedConfig: SmzTreeNestedData);
    addChild(key: string): SmzNestedChildTreeBuilder<SmzNestedChildTreeBuilder<TBuilder>>;
    makeAsGroup(label: string): SmzNestedGroupTreeBuilder<SmzNestedChildTreeBuilder<TBuilder>>;
    setDataAsSimpleNamedEntity(): SmzNestedChildTreeBuilder<TBuilder>;
    removeParentPropertiesFromData(): SmzNestedChildTreeBuilder<TBuilder>;
    setIcon(icon: string): SmzNestedChildTreeBuilder<TBuilder>;
    setType(type: string): SmzNestedChildTreeBuilder<TBuilder>;
    disableSelection(): SmzNestedChildTreeBuilder<TBuilder>;
    conditionalSelection(callback: (item: any) => boolean): SmzNestedChildTreeBuilder<TBuilder>;
    get back(): TBuilder;
}
export declare class SmzNestedGroupTreeBuilder<TBuilder> extends SmzBuilderUtilities<SmzNestedGroupTreeBuilder<TBuilder>> {
    private _builder;
    private _nestedConfig;
    private label;
    protected that: this;
    constructor(_builder: TBuilder, _nestedConfig: SmzTreeNestedData, label: string);
    setKey(key: string): SmzNestedGroupTreeBuilder<TBuilder>;
    setType(type: string): SmzNestedGroupTreeBuilder<TBuilder>;
    setIcon(icon: string): SmzNestedGroupTreeBuilder<TBuilder>;
    setDataAsSimpleNamedEntity(): SmzNestedGroupTreeBuilder<TBuilder>;
    disableSelection(): SmzNestedGroupTreeBuilder<TBuilder>;
    conditionalSelection(callback: (item: any) => boolean): SmzNestedGroupTreeBuilder<TBuilder>;
    get child(): TBuilder;
}
