/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnInit, SimpleChanges } from '@angular/core';
import { DataBoundComponent } from './data-bound-component';
import { DragAndDropDirective } from './drag-and-drop/drag-and-drop.directive';
import { FilteringBase } from './filtering-base';
import * as i0 from "@angular/core";
/**
 * A directive which encapsulates the retrieval of child nodes.
 */
export declare class HierarchyBindingDirective extends FilteringBase implements OnInit {
    protected component: DataBoundComponent;
    private dragAndDropDirective?;
    /**
     * The field name which holds the data items of the child component.
     */
    set childrenField(value: string);
    /**
     * The field name which holds the data items of the child component.
     */
    get childrenField(): string;
    /**
     * The nodes which will be displayed by the TreeView.
     */
    set nodes(nodes: any[]);
    get nodes(): any[];
    protected _nodes: any[];
    /**
     * @hidden
     * A callback which determines whether a TreeView node should be rendered as hidden.
     */
    set isVisible(fn: (item: object, index: string) => boolean);
    /**
     * @hidden
     */
    loadOnDemand: boolean;
    private _childrenField;
    private originalData;
    constructor(component: DataBoundComponent, dragAndDropDirective?: DragAndDropDirective);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * @hidden
     */
    updateNodes(values: any[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<HierarchyBindingDirective, [null, { optional: true; host: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<HierarchyBindingDirective, "[kendoTreeViewHierarchyBinding]", never, { "childrenField": { "alias": "childrenField"; "required": false; }; "nodes": { "alias": "nodes"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "loadOnDemand": { "alias": "loadOnDemand"; "required": false; }; }, {}, never, never, true, never>;
}
