/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { SimpleChange, OnInit, OnDestroy, OnChanges, DoCheck } from '@angular/core';
import { State, CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query';
import { DataBoundTreeComponent } from './data-bound-tree-component';
import { DataStateChangeEvent } from '../data/change-event-args.interface';
import { RowReorderEvent } from '../row-reordering/types';
import { RowReorderService } from './../row-reordering/row-reorder.service';
import * as i0 from "@angular/core";
export declare abstract class BaseBindingDirective implements OnInit, OnDestroy, OnChanges, DoCheck {
    protected component: DataBoundTreeComponent;
    protected rowReorderService?: RowReorderService;
    /**
     * Defines the descriptors by which the data will be sorted.
     */
    set sort(value: SortDescriptor[]);
    /**
     * Defines the descriptor by which the data will be filtered.
     */
    set filter(value: CompositeFilterDescriptor);
    /**
     * Defines the descriptor by which the data will be aggregated.
     */
    set aggregate(value: any);
    protected state: State;
    protected abstract data: any;
    protected dataChanged: boolean;
    protected cache: any;
    protected originalData: any[];
    protected _aggregate: any;
    private subscriptions;
    constructor(component: DataBoundTreeComponent, rowReorderService?: RowReorderService);
    /**
     * @hidden
     */
    ngOnInit(): void;
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    ngDoCheck(): void;
    /**
     * @hidden
     */
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    /**
     * @hidden
     */
    onStateChange(state: DataStateChangeEvent): void;
    /**
     * Clears the directive cache and reloads the component data.
     */
    rebind(): void;
    protected abstract getChildren(item?: any): any;
    protected abstract itemKey(item: any): any;
    protected onRowReorder(_event: RowReorderEvent): void;
    protected applyState({ sort, filter }: State): void;
    protected fetchChildren(item?: any): any;
    protected hasChildren(item: any): boolean;
    protected filterItems(items: any): any[];
    protected calculateAggregates(items: any): any;
    protected updateData(value: any[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseBindingDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BaseBindingDirective, never, never, { "sort": { "alias": "sort"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "aggregate": { "alias": "aggregate"; "required": false; }; }, {}, never, never, false, never>;
}
