import { Table, LineRange, TableMergedRegions } from 'fittable-core/model'; import { TableChanges, TableChangesFactory, Args } from 'fittable-core/operations'; import { LineInsertChange } from '../../table-change-writter/line/line-insert-change-writter.js'; import { LineRemoveChange } from '../../table-change-writter/line/line-remove-change-writter.js'; import { MergedRegionsChange } from '../../table-change-writter/merged-regions/merged-regions-change-writter.js'; type LineInsertArgs = { selectedLines: LineRange[]; numberOfNewLines: number; insertAfter?: boolean; }; declare abstract class LineInsertChangesBuilder { protected readonly table: Table; protected readonly args: LineInsertArgs; protected readonly lineInsertChange: LineInsertChange; protected readonly mergedRegionsChange: MergedRegionsChange; protected readonly lineRemoveUndoChange: LineRemoveChange; protected readonly mergedRegionsUndoChange: MergedRegionsChange; protected mergedRegionsTable?: Table & TableMergedRegions; private selectedLines; constructor(table: Table, args: LineInsertArgs); protected abstract getNumberOfLines(): number; protected abstract getRegionLineId(rowId: number, colId: number): number; protected abstract getLineSpan(rowId: number, colId: number): number; protected abstract moveRegion(rowId: number, colId: number): void; protected abstract increaseRegion(rowId: number, colId: number): void; protected insertLines(): void; private createInsertAfterLineRanges; private createMovableLinesDto; protected undoInsertLines(): void; private removeInsertedLines; revertMovedLines(): void; protected updateMergedRegions(): void; } export type RowInsertTableChangesArgs = Args<'row-insert'> & LineInsertArgs; export declare class RowInsertTableChangesBuilder extends LineInsertChangesBuilder { protected readonly table: Table; protected readonly args: RowInsertTableChangesArgs; constructor(table: Table, args: RowInsertTableChangesArgs); build(): TableChanges; protected getNumberOfLines(): number; protected getRegionLineId(rowId: number): number; protected getLineSpan(rowId: number, colId: number): number; protected moveRegion(rowId: number, colId: number): void; protected increaseRegion(rowId: number, colId: number): void; } export declare class RowInsertChangesFactory implements TableChangesFactory { createTableChanges(table: Table, args: RowInsertTableChangesArgs): TableChanges | Promise; } export type ColInsertTableChangesArgs = Args<'column-insert'> & LineInsertArgs; export declare class ColInsertTableChangesBuilder extends LineInsertChangesBuilder { protected readonly table: Table; protected readonly args: ColInsertTableChangesArgs; constructor(table: Table, args: ColInsertTableChangesArgs); protected getNumberOfLines(): number; build(): TableChanges; protected getRegionLineId(rowId: number, colId: number): number; protected getLineSpan(rowId: number, colId: number): number; protected moveRegion(rowId: number, colId: number): void; protected increaseRegion(rowId: number, colId: number): void; } export declare class ColInsertChangesFactory implements TableChangesFactory { createTableChanges(table: Table, args: ColInsertTableChangesArgs): TableChanges | Promise; } export {};