/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import * as i0 from "@angular/core"; /** * Tracks the relationship between pinned rows and their counterparts in the main data table. * Use this service to find the main row index for a given pinned row data item, * or to find the pinned counterpart of a main row. * * The service is updated automatically by the Grid when `pinnedTopRows`, `pinnedBottomRows`, * or `data` changes. For reliable index resolution, pinned row data items must be * reference-equal to the corresponding items in the main data array. * * @hidden */ export declare class PinnedRowTrackingService { private topIndexMap; private bottomIndexMap; private mainIndexMap; /** * Updates the internal tracking maps based on the current pinned rows and main data. * Called automatically by the Grid when relevant inputs change. * * @param topRows - The array of data items pinned to the top. * @param bottomRows - The array of data items pinned to the bottom. * @param data - The flat main data array for the current page. * @param skip - The current page skip offset used to compute absolute row indices. */ update(topRows: any[], bottomRows: any[], data: any[], skip: number): void; /** * Updates the internal tracking maps using a pre-built data-item-to-index map from the main view. * This handles grouping, sorting, and pagination correctly. * * @param topRows - The array of data items pinned to the top. * @param bottomRows - The array of data items pinned to the bottom. * @param dataToIndex - A map from data item references to their absolute row indices in the main view. */ updateFromIndexMap(topRows: any[], bottomRows: any[], dataToIndex: Map): void; /** * Returns the absolute main row index for a pinned row data item, or `-1` if not found. * The returned index matches the `index` property used by selection and editing services. */ getMainRowIndex(dataItem: any): number; /** * Returns `true` if the given data item is currently pinned to the top or bottom. */ isRowPinned(dataItem: any): boolean; /** * Returns the pin position (`'top'` or `'bottom'`) for the given data item, * or `null` if the item is not pinned. */ getPinnedPosition(dataItem: any): 'top' | 'bottom' | null; /** * Returns the pinned counterpart for a given main row index, * or `null` if the main row has no pinned counterpart. */ getPinnedCounterpart(mainIndex: number): { dataItem: any; position: 'top' | 'bottom'; } | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }