import type { HotInstance } from '../../core/types'; /** * Gets all cell metas from the provided range. * * @param {Core} hot The Handsontable instance. * @param {number} fromRow The starting row index. * @param {number} toRow The ending row index. * @param {number} fromColumn The starting column index. * @param {number} toColumn The ending column index. * @returns {Array} Returns an array of cell metas. */ export declare function getCellMetas(hot: HotInstance, fromRow: number, toRow: number, fromColumn: number, toColumn: number): unknown[]; interface MergedCell { row: number; col: number; rowspan: number; colspan: number; } /** * Collects merged cells that overlap the removed visual range along the given axis. * The mergeCells plugin's own `shiftCollections` logic mutates surviving merges * asymmetrically (a partial removal at the start cannot be reversed on `afterCreateRow` * / `afterCreateCol`), so on undo we must restore every overlapping merge from its * pre-removal state. * * @param {Core} hot The Handsontable instance. * @param {'row'|'col'} axis The axis being removed — `'row'` or `'col'`. * @param {number} start First visual row/column being removed. * @param {number} amount Number of rows/columns being removed. * @returns {Array} Array of `{ row, col, rowspan, colspan }` objects. */ export declare function collectAffectedMergedCells(hot: HotInstance, axis: 'row' | 'col', start: number, amount: number): MergedCell[]; /** * Re-applies merged cells affected by row/column removal. Any leftover partial merge in * the captured area is unmerged first so the original range can be re-merged. * * @param {Core} hot The Handsontable instance. * @param {Array} mergedCells Array of `{ row, col, rowspan, colspan }` objects. */ export declare function restoreMergedCells(hot: HotInstance, mergedCells: MergedCell[]): void; export {};