import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { EventEmitter, Signal } from '@angular/core'; import { AbstractControl } from '@angular/forms'; import { ColumnDirective } from './column.directive'; import { ColumnDefinition, DataWithKey, FormGroupConfig, GroupedDataRow } from './data-table.types'; import { TableStyles } from './style.types'; import * as i0 from "@angular/core"; export declare class DataTableComponent { data: import("@angular/core").InputSignal; columns: import("@angular/core").InputSignal[]>; dataKey: import("@angular/core").InputSignal; formGroupConfig: import("@angular/core").InputSignal; }> | undefined>; groupBy: import("@angular/core").InputSignal any) | undefined>; useVirtualScroll: import("@angular/core").InputSignal; virtualScrollItemSize: import("@angular/core").InputSignal; viewPort: Signal; styleConfig: TableStyles; columnTemplates: Signal; rowEdit: EventEmitter; rowSave: EventEmitter<{ index: number; key: number | string; data: Partial; }>; rowRevert: EventEmitter<{ index: number; key: number | string; data: T; }>; rowDelete: EventEmitter; selectionChange: EventEmitter; /** Internally maintained data, with guaranteed uniqueness due to key property */ tableData: Signal[]>; private editingRowsSignal; private selectedRowsSignal; private unEditedDataSignal; private formGroupsSignal; displayColumns: Signal[]>; constructor(); updateVirtualScrollViewport(): void; hasFooter: Signal; private _getRowIdByDataKey; isGroupRow(row: T): row is T & { isGroupRow: true; groupTitle: any; }; trackByRowKey(index: number, row: any): any; groupedData: Signal[]>; getCellValue: (row: T, column: ColumnDefinition) => any; isRowEditing: (rowKey: DataWithKey["_key"]) => boolean; toggleRowEdit: (rowId: DataWithKey["_key"]) => void; private toggleRowEditInternal; private initializeEditedData; private saveRow; private isRowSelected; private toggleRowSelection; private allRowsSelected; private someRowsSelected; private toggleAllRows; private emitSelectionChange; getHeaderContext(column: ColumnDefinition): { $implicit: ColumnDefinition; column: ColumnDefinition; allRowsSelected: () => boolean; someRowsSelected: () => boolean; toggleAllRows: () => void; }; updateEditedValue(rowId: string | number, column: ColumnDefinition, value: any): void; updateEditedValueFn(rowId: string | number, valueFn: (value: any) => T, value: any): void; updateEditedData(rowId: string | number, data: Partial): void; updateNestedEditedValue(rowId: string | number, column: ColumnDefinition, nestedField: string, value: any): void; getCellContext(row: DataWithKey, column: ColumnDefinition, rowIndex: number): { $implicit: any; value: any; row: T; column: ColumnDefinition; rowIndex: number; rowId: string | number; isEditing: boolean; formControl: AbstractControl | null | undefined; control: AbstractControl | null | undefined; isSelected: boolean; toggleRowSelection: () => void; toggleRowEdit: () => void; deleteRow: () => void; updateValue: (newValue: any) => void; updateNestedValue: (nestedField: string, newValue: any) => void; updateValueFn: (valueFn: (value: any) => T, newValue: any) => void; updateData: (newData: Partial) => void; }; deleteRow: (rowId: string | number) => void; getFooterContext(column: ColumnDefinition): { $implicit: ColumnDefinition; column: ColumnDefinition; data: import("@angular/core").InputSignal; }; getTableStyle(): any; getHeaderStyle(): any; getFooterStyle(): any; getRowStyle(rowIndex: number): any; getCellStyle(rowIndex: number, colIndex: number): any; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "lib-data-table", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "formGroupConfig": { "alias": "formGroupConfig"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "useVirtualScroll": { "alias": "useVirtualScroll"; "required": false; "isSignal": true; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; "isSignal": true; }; "styleConfig": { "alias": "styleConfig"; "required": false; }; }, { "rowEdit": "rowEdit"; "rowSave": "rowSave"; "rowRevert": "rowRevert"; "rowDelete": "rowDelete"; "selectionChange": "selectionChange"; }, ["columnTemplates"], never, false, never>; }