import type { default as CellRange } from '../../3rdparty/walkontable/src/cell/range'; /** * The utils class produces the selection ranges in the `{startRow, startCol, endRow, endCol}` format * based on the current table selection. The CopyPaste plugin consumes that ranges to generate * appropriate data ready to copy to the clipboard. * * @private */ export declare class CopyableRangesFactory { #private; /** * @param {{ * countRows: function(): number, * countColumns: function(): number, * rowsLimit: function(): number, * columnsLimit: function(): number, * countColumnHeaders: function(): number * }} dependencies The utils class dependencies. */ constructor({ countRows, countColumns, rowsLimit, columnsLimit, countColumnHeaders }: { countRows: () => number; countColumns: () => number; rowsLimit: () => number; columnsLimit: () => number; countColumnHeaders: () => number; }); /** * Sets the selection range to be processed. * * @param {CellRange} selectedRange The selection range represented by the CellRange class. */ setSelectedRange(selectedRange: CellRange): void; /** * Returns a new coords object within the dataset range (cells) with `startRow`, `startCol`, `endRow` * and `endCol` keys. * * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null} */ getCellsRange(): { isRangeTrimmed: boolean; startRow: number; startCol: number; endRow: number; endCol: number; } | null; /** * Returns a new coords object within the most-bottom column headers range with `startRow`, * `startCol`, `endRow` and `endCol` keys. * * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null} */ getMostBottomColumnHeadersRange(): { isRangeTrimmed: boolean; startRow: number; startCol: number; endRow: number; endCol: number; } | null; /** * Returns a new coords object within all column headers layers (including nested headers) range with * `startRow`, `startCol`, `endRow` and `endCol` keys. * * @returns {{startRow: number, startCol: number, endRow: number, endCol: number} | null} */ getAllColumnHeadersRange(): { isRangeTrimmed: boolean; startRow: number; startCol: number; endRow: number; endCol: number; } | null; } /** * Returns an object with `rows` and `columns` keys. The arrays contains sorted indexes * generated according to the given `ranges` array. * * @param {Array<{startRow: number, startCol: number, endRow: number, endCol: number}>} ranges The range to process. * @returns {{rows: number[], columns: number[]}} */ export declare function normalizeRanges(ranges: Record[]): { rows: number[]; columns: number[]; };