import React from 'react'; import { ColumnWidth, SortingState, TableColumn, TableRow, TableTreeRow } from './Table'; export declare const Order: { readonly ASC: "ASC"; readonly asc: "asc"; readonly DESC: "DESC"; readonly desc: "desc"; }; export type OrderType = (typeof Order)[keyof typeof Order]; export type Position = { colSpan?: number; rowSpan?: number; level: number; gridIndex: number; isFirst?: boolean; topHeaderGridIndex: number; smallTextSize?: boolean; height?: number; }; export type Header = TableColumn & { position: Position; colId?: number; parentId?: number; }; export type HeaderData = { headers: Array>[]; flattenedHeaders: Array>; lowHeaders: Array>; headerRowsRefs: React.MutableRefObject>; headerRowsHeights: Array; headerColumnsHeights: Array; resizerTopOffsets: Array; }; export declare const getColumnsSize: (sizes: ColumnWidth[]) => string; export declare const getColumnLeftOffset: ({ columnIndex, resizedColumnWidths, initialColumnWidths, }: { columnIndex: number; resizedColumnWidths: Array; initialColumnWidths: number[]; }) => number; export declare const createSortingState: (by: keyof T, order?: OrderType, sortFn?: (a: T[keyof T], b: T[keyof T]) => number) => SortingState; export declare const getNewSorting: (currentSorting: SortingState, newField: keyof T, sortFn?: (a: T[keyof T], b: T[keyof T]) => number) => SortingState; export declare const getMaxLevel: (columns: Array>) => number; export declare const transformColumns: (columns: Array>, maxLevel: number) => Array>[]; /** * Возвращает данные, необходимые для построения хедера таблицы * * @param columns - массив колонок * * @return { * {Array>[]} headers: двумерный массив заголовков, выстроенный по вертикали; * {Array>} flattenedHeaders: плоский массив заголовков; * {Array>} lowHeaders: самые нижние заголовки (по ним строятся колонки); * {Record} headerRowsRefs: содержит рефы на заголовки; * {Array} headerRowsHeights: массив высот строк заголовков; * {Array} headerColumnsHeights: массив высот колонок заголовков; * {Array} resizerTopOffsets: массив отступов для компонентов Resizer; * } */ export declare const useHeaderData: (columns: Array>) => HeaderData; /** * Возвращает 2 функции, необходимые для отображения большого количества строк в таблице * * @param maxVisibleRows - максимальное количество отображаемых строк в один момент времени * @param scrollableEl - элемент, на который вешается scroll listener * @param enabled - флаг включения данной функциональность * * @return { * getSlicedRows: функция, обрезающая исходный массив данных * setBoundaryRef: функция, проставляющая рефы необходимым ячейкам для вычисления границ отображения строк * } */ export declare const useLazyLoadData: (maxVisibleRows: number, scrollableEl: HTMLDivElement | Window | null, enabled: boolean) => { getSlicedRows: (rows: T[]) => T[]; setBoundaryRef: (columnIdx: number, rowIdx: number) => React.RefObject | undefined; }; export declare const transformRows: (rows: T[], expandedRowIds: string[], isTableExpanded?: boolean) => TableTreeRow[]; export declare function getMergedArray(mainArr: TYPE[], mergeArr: TYPE[]): TYPE[]; export declare function calculateColSpans(columns: TableColumn[], row: TableTreeRow): number[];