import { Observable } from 'rxjs'; import { Table } from 'fittable-core/model'; import { OperationExecutor, TableChangesFactoryClass, TableChangeWritterFactoryClass, TableChanges } from 'fittable-core/operations'; import { FitOperationId, FitTableChangeId, FitOperationArgs } from './fit-operation-executor-args.js'; export declare class FitOperationExecutor implements OperationExecutor { private readonly executor; private tableChangesFactories; private tableChangeWritterFactories; private table?; constructor(); private readonly createChangeWritter; bindTableChangesFactory(operationId: FitOperationId, clazz: TableChangesFactoryClass): this; unbindTableChangesFactory(operationId: FitOperationId): this; bindTableChangeWritterFactory(changeId: FitTableChangeId, clazz: TableChangeWritterFactoryClass): this; unbindTableChangeWritterFactory(changeId: FitTableChangeId): this; unbindFactories(): this; setTable(table: Table): this; getTable(): Table | undefined; run(args: FitOperationArgs): this; calculateTableChanges(args: FitOperationArgs): TableChanges | Promise; writeTableChanges(changes: TableChanges | Promise): this; onBeforeRun$(): Observable; onAfterRun$(): Observable; canUndo(): boolean; undo(): this; onBeforeUndo$(): Observable; onAfterUndo$(): Observable; canRedo(): boolean; redo(): this; onBeforeRedo$(): Observable; onAfterRedo$(): Observable; clearOperations(): this; }