import { Table, TableStyles, LineRange, TableBasics, TableMergedRegions, TableCellDataType } from 'fittable-core/model'; import { TableChanges, TableChangesFactory, Args } from 'fittable-core/operations'; import { TableLinesHelper, TableRowsHelper, TableColsHelper } from '../../utils/line/table-lines-helper.js'; import { LineRemoveChange } from '../../table-change-writter/line/line-remove-change-writter.js'; import { LineDimensionChange } from '../../table-change-writter/line/line-dimension-change-writter.js'; import { LineInsertChange } from '../../table-change-writter/line/line-insert-change-writter.js'; import { CellValueChange } from '../../table-change-writter/cell/cell-value-change-writter.js'; import { DataTypeChange } from '../../table-change-writter/cell/cell-data-type-change-writter.js'; import { StyleChange } from '../../table-change-writter/style/style-change-writter.js'; import { MergedRegionsChange } from '../../table-change-writter/merged-regions/merged-regions-change-writter.js'; type LineRemoveArgs = { selectedLines: LineRange[]; }; declare abstract class LineRemoveChangesBuilder { protected readonly table: Table; protected readonly args: LineRemoveArgs; protected lineRemoveChange: LineRemoveChange; protected styleChange: StyleChange; protected mergedRegionsChange: MergedRegionsChange; protected lineInsertUndoChange: LineInsertChange; protected lineDimensionUndoChange: LineDimensionChange; protected cellValueUndoChange: CellValueChange; protected dataTypeUndoChange: DataTypeChange; protected styleUndoChange: StyleChange; protected mergedRegionsUndoChange: MergedRegionsChange; protected readonly dataTypeTable?: TableBasics & TableCellDataType; protected readonly styledTable?: TableBasics & TableStyles; protected readonly mergedRegionsTable?: TableBasics & TableMergedRegions; constructor(table: Table, args: LineRemoveArgs); protected abstract getTableLinesHelper(): TableLinesHelper; protected abstract getRegionLineId(rowId: number, colId: number): number; protected abstract getLineSpan(rowId: number, colId: number): number; protected abstract moveRegion(rowId: number, colId: number, factor: number): void; protected abstract increaseRegion(rowId: number, colId: number, factor: number): void; protected removeRegion(rowId: number, colId: number): void; protected update(): void; private removeLines; private moveLines; private sortLineRanges; private removeStyles; private getStyledTable; private getCellRangeDtos; protected undo(): void; private undoLineDimensions; private undoRemovedLines; private undoCellValues; private undoDataTypes; private undoStyles; private undoRemovedCellStyleNames; private undoRemovedStyles; protected updateMergedRegions(): void; private adjustUndoMergedRegionsWithMoveFactor; } export type RowRemoveArgs = Args<'row-remove'> & LineRemoveArgs; export declare class RowRemoveChangesBuilder extends LineRemoveChangesBuilder { protected readonly table: Table; protected readonly args: RowRemoveArgs; constructor(table: Table, args: RowRemoveArgs); build(): TableChanges; protected getTableLinesHelper(): TableRowsHelper; protected getRegionLineId(rowId: number): number; protected getLineSpan(rowId: number, colId: number): number; protected moveRegion(rowId: number, colId: number, moveRow: number): void; protected increaseRegion(rowId: number, colId: number, increaseRow: number): void; } export declare class RowRemoveChangesFactory implements TableChangesFactory { createTableChanges(table: Table, args: RowRemoveArgs): TableChanges | Promise; } export type ColRemoveArgs = Args<'column-remove'> & LineRemoveArgs; export declare class ColRemoveChangesBuilder extends LineRemoveChangesBuilder { protected readonly table: Table; protected readonly args: ColRemoveArgs; constructor(table: Table, args: ColRemoveArgs); build(): TableChanges; protected getTableLinesHelper(): TableColsHelper; protected getRegionLineId(rowId: number, colId: number): number; protected getLineSpan(rowId: number, colId: number): number; protected moveRegion(rowId: number, colId: number, moveCol: number): void; protected increaseRegion(rowId: number, colId: number, increaseCol: number): void; } export declare class ColRemoveChangesFactory implements TableChangesFactory { createTableChanges(table: Table, args: ColRemoveArgs): TableChanges | Promise; } export {};