import type { Group } from '@antv/g';
import type { DataCell } from '../../cell';
import { MergedCell } from '../../cell/merged-cell';
import type { MergedCellCallback, MergedCellInfo, TempMergedCell, ViewMeta } from '../../common/interface';
import type { SpreadSheet } from '../../sheet-type';
/**
 * get cells on the outside of visible area through mergeCellInfo
 * @param invisibleCellInfo
 * @param sheet
 */
export declare const getInvisibleInfo: (invisibleCellInfo: MergedCellInfo[], sheet: SpreadSheet) => {
    cells: DataCell[];
    cellsMeta: ViewMeta | null | undefined;
};
/**
 * get { cells, invisibleCellInfo, cellsMeta } in the inside of visible area through mergeCellInfo
 * @param cellsInfos
 * @param allVisibleCells
 * @returns { cells, invisibleCellInfo, cellsMeta }
 */
export declare const getVisibleInfo: (cellsInfos: MergedCellInfo[], allVisibleCells: DataCell[]) => {
    cells: DataCell[];
    invisibleCellInfo: MergedCellInfo[];
    cellsMeta: Node | ViewMeta | undefined;
};
/**
 * get the data cell and meta that make up the mergedCell
 * @param cellsInfos
 * @param allVisibleCells
 * @param sheet
 */
export declare const getTempMergedCell: (allVisibleCells: DataCell[], sheet?: SpreadSheet, cellsInfos?: MergedCellInfo[]) => TempMergedCell;
/**
 * get the active cells' info as the default info of merged cells
 * @param sheet
 */
export declare const getActiveCellsInfo: (sheet: SpreadSheet) => MergedCellInfo[];
/**
 * 创建 merged cell 实例
 * @param spreadsheet 表格实例
 * @param cells 待合并的单元格
 * @param meta 元信息
 * @returns
 */
export declare const getMergedCellInstance: MergedCellCallback;
/**
 * draw the background of the merged cell
 * @param sheet the base sheet instance
 * @param cellsInfo
 * @param hideData
 */
export declare const mergeCell: (sheet: SpreadSheet, cellsInfo?: MergedCellInfo[], hideData?: boolean) => void;
/**
 * remove unmergedCells Info, return new mergedCell info
 * @param removeMergedCell
 * @param mergedCellsInfo
 */
export declare const removeUnmergedCellsInfo: (removeMergedCell: MergedCell, mergedCellsInfo: MergedCellInfo[][]) => MergedCellInfo[][];
/**
 * unmerge MergedCell
 * @param removedCell
 * @param sheet
 */
export declare const unmergeCell: (sheet: SpreadSheet, removedCell: MergedCell) => void;
/**
 * 合并 TempMergedCell, 通过 cell.viewMeta.id 判断 TempMergedCell 是否是同一个。
 * @param TempMergedCells
 * @param otherTempMergedCells
 */
export declare const mergeTempMergedCell: (TempMergedCells: TempMergedCell[], otherTempMergedCells: TempMergedCell[]) => TempMergedCell[];
/**
 * 将 MergedCell 转换成 TempMergedCell
 * @param oldMergedCells
 * @constructor
 */
export declare const mergedCellConvertTempMergedCells: (oldMergedCells: MergedCell[]) => {
    cells: DataCell[];
    viewMeta: ViewMeta;
}[];
/**
 * 对比两个TempMergedCell，返回 mainTempMergedCells 中存在的，但是 otherTempMergedCells 中不存在的的 TempMergedCell
 * @param mainTempMergedCells
 * @param compareTempMergedCells
 */
export declare const differenceTempMergedCells: (mainTempMergedCells: TempMergedCell[], compareTempMergedCells: TempMergedCell[]) => TempMergedCell[];
/**
 * update the mergedCell
 * @param sheet the base sheet instance
 */
export declare const updateMergedCells: (sheet: SpreadSheet, mergedCellsGroup: Group) => void;
