/**-----------------------------------------------------------------------------------------
* 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, ChangeDetectorRef } from '@angular/core';
import { State, SortDescriptor, GroupDescriptor, CompositeFilterDescriptor } from '@progress/kendo-data-query';
import { GridComponent } from './grid.component';
import { DataStateChangeEvent } from './data/change-event-args.interface';
import { GridDataResult } from './data/data.collection';
import { LocalDataChangesService } from './editing/local-data-changes.service';
import { RowReorderEvent } from './row-reordering/types';
import { RowReorderService } from './row-reordering/row-reorder.service';
import { ContextService } from './common/provider.service';
import * as i0 from "@angular/core";
/**
* A directive that handles in-memory data operations like [paging]({% slug paging_grid %}),
* [sorting]({% slug sorting_grid %}), and [grouping]({% slug grouping_grid %}).
*
* Use this directive with local data and enable the Grid data operations with minimal configuration.
* ([More information and examples]({% slug local_data_grid %}#toc-using-the-data-binding-directive)).
*
* @example
* ```html
*
* ```
* @remarks
* Applied to: {@link GridComponent}.
*/
export declare class DataBindingDirective implements OnInit, OnDestroy, DoCheck, OnChanges {
protected grid: GridComponent;
protected changeDetector?: ChangeDetectorRef;
protected localDataChangesService?: LocalDataChangesService;
private rowReorderService?;
/**
* Sets the number of records to skip in the Grid.
*
* @default 0
*/
set skip(value: number);
/**
* Sets the sort descriptors for the Grid data.
*
*/
set sort(value: SortDescriptor[]);
/**
* Sets the filter descriptor for the Grid data.
*
*/
set filter(value: CompositeFilterDescriptor);
/**
* Sets the page size for the Grid pager.
*
*/
set pageSize(value: number);
/**
* Sets the group descriptors for the Grid data.
*
*/
set group(value: GroupDescriptor[]);
/**
* Sets the data array for the Grid.
*
*/
set data(value: any[]);
protected state: State;
protected originalData: any[];
protected dataChanged: boolean;
private stateChangeSubscription;
private dataChangedSubscription;
private rowReorderSubscription;
constructor(grid: GridComponent, changeDetector?: ChangeDetectorRef, localDataChangesService?: LocalDataChangesService, rowReorderService?: RowReorderService, ctx?: ContextService);
/**
* @hidden
*/
ngOnInit(): void;
/**
* @hidden
*/
ngOnDestroy(): void;
/**
* @hidden
*/
ngOnChanges(changes: {
[propertyName: string]: SimpleChange;
}): void;
ngDoCheck(): void;
/**
* @hidden
*/
onStateChange(state: DataStateChangeEvent): void;
/**
* @hidden
*/
onRowReorder(ev: RowReorderEvent): void;
/**
* @hidden
*/
rebind(): void;
/**
* Notifies the Grid that its data has changed.
*/
notifyDataChange(): void;
protected process(state: State): GridDataResult;
protected applyState({ skip, take, sort, group, filter }: State): void;
protected updateGridData(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}