/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { SimpleChange, NgZone, Renderer2, ElementRef, OnInit, OnDestroy, OnChanges, DoCheck, TrackByFunction, TemplateRef } from '@angular/core';
import { GroupDescriptor, GroupResult } from '@progress/kendo-data-query';
import { ColumnBase } from '../columns/column-base';
import { DetailTemplateDirective } from './details/detail-template.directive';
import { GroupsService } from '../grouping/groups.service';
import { ChangeNotificationService } from '../data/change-notification.service';
import { NoRecordsTemplateDirective } from './no-records-template.directive';
import { EditService } from '../editing/edit.service';
import { RowClassFn, RowStickyFn } from './common/row-class';
import { SelectableSettings } from '../selection/types';
import { DomEventsService } from '../common/dom-events.service';
import { SelectionService } from "../selection/selection.service";
import { ColumnInfoService } from "../common/column-info.service";
import { FilterableSettings } from '../filtering/filterable';
import { NavigationService } from '../navigation/navigation.service';
import { GridItem } from '../data/grid-item.interface';
import { DetailsService } from './details/details.service';
import { CellSelectionService } from '../selection/cell-selection.service';
import { GroupItem } from '../data/group-item.interface';
import { GroupFooterItem } from '../data/group-footer-item.interface';
import { DataItem } from '../data/data-item.interface';
import { SVGIcon } from '@progress/kendo-svg-icons';
import { ContextService } from '../common/provider.service';
import { ColumnsContainer } from '../columns/columns-container';
import { RowArgs } from './common/row-args';
import { RowspanService } from './rowspan.service';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare class TableBodyComponent implements OnInit, OnDestroy, OnChanges, DoCheck {
    detailsService: DetailsService;
    groupsService: GroupsService;
    private changeNotification;
    editService: EditService;
    private ctx;
    private ngZone;
    private renderer;
    private element;
    private domEvents;
    selectionService: SelectionService;
    cellSelectionService: CellSelectionService;
    private columnInfoService;
    private navigationService;
    private rowspanService;
    columns: Array<ColumnBase>;
    allColumns: Array<ColumnBase>;
    groups: Array<GroupDescriptor>;
    detailTemplate: DetailTemplateDirective;
    noRecordsTemplate: NoRecordsTemplateDirective;
    data: Array<GridItem>;
    skip: number;
    selectable: SelectableSettings | boolean;
    filterable: FilterableSettings;
    noRecordsText: string;
    isLocked: boolean;
    isLoading: boolean;
    isVirtual: boolean;
    cellLoadingTemplate: TemplateRef<any>;
    skipGroupDecoration: boolean;
    showGroupFooters: boolean;
    lockedColumnsCount: number;
    totalColumnsCount: number;
    virtualColumns: boolean;
    trackBy: TrackByFunction<GridItem>;
    rowSticky: RowStickyFn;
    totalColumns: ColumnsContainer;
    rowClass: RowClassFn;
    hostClass: boolean;
    groupHeaderSlaveCellsCount: number;
    groupHeaderColumns: any[];
    private clickSubscription;
    private touchSubscription;
    private l10nSubscription;
    private cellKeydownSubscription;
    private clickTimeout;
    private minusIcon;
    private plusIcon;
    private dataArray;
    private rerender;
    constructor(detailsService: DetailsService, groupsService: GroupsService, changeNotification: ChangeNotificationService, editService: EditService, ctx: ContextService, ngZone: NgZone, renderer: Renderer2, element: ElementRef, domEvents: DomEventsService, selectionService: SelectionService, cellSelectionService: CellSelectionService, columnInfoService: ColumnInfoService, navigationService: NavigationService, rowspanService: RowspanService);
    get newDataItem(): any;
    get cachedDataArray(): any[];
    unlockedColumnsCount(item?: any): number;
    shouldSkipCell(rowIndex: number, colIndex: number): boolean;
    getRowspan(row: RowArgs, column: ColumnBase, colIndex: number): number;
    isAriaSelected(item: any, column: ColumnBase): string;
    toggleRow(index: number, dataItem: any): boolean;
    isExpanded(viewItem: any): boolean;
    detailButtonIconName(viewItem: any): string;
    detailButtonSvgIcon(viewItem: any): SVGIcon;
    detailButtonTitle(viewItem: any): any;
    isGroup(item: GridItem): boolean;
    isDataItem(item: GridItem): boolean;
    isFooter(item: GridItem): boolean;
    isFooterItemInExpandedGroup(item: GroupFooterItem): boolean;
    isDataItemInExpandedGroup(item: DataItem): boolean;
    isInExpandedGroup(item: {
        data: GroupResult;
        index: string;
        parentGroup: GroupItem;
    }): boolean;
    isParentGroupExpanded(item: GroupItem): boolean;
    isOdd(item: any): boolean;
    isSelectable(args: RowArgs): boolean;
    isRowSelected(item: any): boolean;
    isRowSelectable(args: RowArgs): boolean;
    trackByWrapper(index: number, item: GridItem): any;
    trackByColumns(index: number, item: any): any;
    ngDoCheck(): void;
    ngAfterViewChecked(): void;
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    logicalRowIndex(rowIndex: number): number;
    addRowLogicalIndex(): number;
    logicalColIndex(column: any): number;
    ngOnInit(): void;
    ngOnDestroy(): void;
    isEditingCell(index: number, column: any): boolean;
    isEditingRow(index: number): boolean;
    get hasGroupHeaderColumn(): boolean;
    get columnsContainer(): any;
    get columnsSpan(): number;
    get allColumnsSpan(): number;
    get colSpan(): number;
    get footerColumns(): ColumnBase[];
    showGroupHeader(item: any): boolean;
    addStickyColumnStyles(column: ColumnBase): {
        [key: string]: any;
    };
    resizeHandler(): void;
    private get hasDetailTemplate();
    private clickHandler;
    private emitCellClick;
    private cellKeydownHandler;
    private cellClickArgs;
    private eventTarget;
    private applyStickyRowsStyling;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableBodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableBodyComponent, "[kendoGridTableBody]", never, { "columns": { "alias": "columns"; "required": false; }; "allColumns": { "alias": "allColumns"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "noRecordsTemplate": { "alias": "noRecordsTemplate"; "required": false; }; "data": { "alias": "data"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "noRecordsText": { "alias": "noRecordsText"; "required": false; }; "isLocked": { "alias": "isLocked"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isVirtual": { "alias": "isVirtual"; "required": false; }; "cellLoadingTemplate": { "alias": "cellLoadingTemplate"; "required": false; }; "skipGroupDecoration": { "alias": "skipGroupDecoration"; "required": false; }; "showGroupFooters": { "alias": "showGroupFooters"; "required": false; }; "lockedColumnsCount": { "alias": "lockedColumnsCount"; "required": false; }; "totalColumnsCount": { "alias": "totalColumnsCount"; "required": false; }; "virtualColumns": { "alias": "virtualColumns"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "rowSticky": { "alias": "rowSticky"; "required": false; }; "totalColumns": { "alias": "totalColumns"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; }, {}, never, never, true, never>;
}
