import { Table } from 'fittable-core/model'; import { TableChangeWritter, TableChangeWritterFactory, Args } from 'fittable-core/operations'; export type MoveLinesDto = { lineRange: unknown; move: number; }; export type LineRemoveChange = { lineRanges: unknown[]; moveLines: MoveLinesDto[]; }; declare abstract class LineRemoveChangeWritter implements TableChangeWritter { protected readonly table: Table; protected readonly change: LineRemoveChange; protected numberOfSelectedLines: number; constructor(table: Table, change: LineRemoveChange); protected abstract updateNumberOfLines(): void; protected abstract removeLine(lineIndex: number): void; protected abstract moveLine(lineIndex: number, move: number): void; run(): void; private countSelectedLines; private removeLines; private moveLines; } export type RowRemoveChange = Args<'row-remove'> & LineRemoveChange; export declare class RowRemoveChangeWritter extends LineRemoveChangeWritter { protected readonly table: Table; protected readonly change: RowRemoveChange; constructor(table: Table, change: RowRemoveChange); protected updateNumberOfLines(): void; protected removeLine(rowId: number): void; protected moveLine(rowId: number, move: number): void; } export declare class RowRemoveChangeWritterFactory implements TableChangeWritterFactory { createTableChangeWritter(table: Table, change: RowRemoveChange): TableChangeWritter; } export type ColRemoveChange = Args<'column-remove'> & LineRemoveChange; export declare class ColRemoveChangeWritter extends LineRemoveChangeWritter { protected readonly table: Table; protected readonly change: ColRemoveChange; constructor(table: Table, change: ColRemoveChange); protected updateNumberOfLines(): void; protected removeLine(colId: number): void; protected moveLine(colId: number, move: number): void; } export declare class ColRemoveChangeWritterFactory implements TableChangeWritterFactory { createTableChangeWritter(table: Table, change: ColRemoveChange): TableChangeWritter; } export {};