/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter } from '@angular/core';
import { CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query';
import { Observable } from 'rxjs';
import { LocalEditService } from '../editing-directives/local-edit.service';
import { RowReorderEvent } from '../row-reordering/types';
import * as i0 from "@angular/core";
/**
 * @hidden
 *
 * An injection token used by the data binding directives to interface with the TreeList or the Gantt.
 */
export declare abstract class DataBoundTreeComponent {
    /**
     * The array of data which will be used to populate the component.
     */
    abstract data: any[];
    /**
     * Gets or sets the callback function that indicates if a particular item has child items.
     */
    abstract hasChildren: (dataItem: any) => boolean;
    /**
     * Gets or sets the callback function that retrieves the child items for a particular item.
     */
    abstract fetchChildren: (dataItem: any) => Observable<any[]> | any[];
    /**
     * Defines the descriptors by which the data will be sorted.
     */
    abstract sort: SortDescriptor[];
    /**
     * Defines the descriptor by which the data will be filtered.
     */
    abstract filter: CompositeFilterDescriptor;
    /**
     * Defines the descriptor by which the data will be aggregated.
     */
    abstract aggregates?: any;
    /**
     * Fires when the data state of the component is changed.
     */
    abstract dataStateChange: EventEmitter<any>;
    /**
     * Fires when row reordering is performed.
     */
    abstract rowReorder?: EventEmitter<RowReorderEvent>;
    /**
     * Specifies if row reordering is enabled.
     */
    abstract rowReorderable?: boolean;
    /**
     * Holds the local edit service implementation, configured by the data-binding directives and accessed by the editing ones.
     */
    abstract localEditService?: LocalEditService;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataBoundTreeComponent, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataBoundTreeComponent>;
}
