import type { BaseTableAPI, pluginsDefinition } from '@visactor/vtable';
import type { TableEventHandlersEventArgumentMap } from '@visactor/vtable/es/ts-types/events';
import type { HistoryCommand, HistoryPluginOptions } from './types';
export declare class HistoryPlugin implements pluginsDefinition.IVTablePlugin {
    id: string;
    name: string;
    runTime: any[];
    private table;
    private vtableSheet;
    private resolvedSheetKey;
    private undoStack;
    private redoStack;
    private currentTransaction;
    private isReplaying;
    private maxHistory;
    private enableCompression;
    private onTransactionPushed?;
    private prevColumnsSnapshot;
    private prevMergeSnapshot;
    private prevRecordsSnapshot;
    private prevFormulasSnapshot;
    private prevResizedRowHeightsSnapshot;
    private prevResizedColWidthsSnapshot;
    private lastKnownSortState;
    private sortStartSnapshot;
    private sortPending;
    private sortEventBound;
    private sortChangeOrderListenerId;
    private cellPreChangeContent;
    private formulaCache;
    private formulaEventBound;
    private formulaEventManager;
    private onFormulaAddedHandler;
    private resizeRowStartHeight;
    private resizeColStartWidth;
    private filterEventBound;
    private filterUnsubscribe;
    private filterSnapshotCache;
    private filterPluginId;
    private filterPluginRef;
    private filterApplySnapshotOriginal;
    private filterApplyingSnapshot;
    constructor(options?: HistoryPluginOptions);
    run(...args: [TableEventHandlersEventArgumentMap[keyof TableEventHandlersEventArgumentMap], any, BaseTableAPI]): void;
    startTransaction(): void;
    endTransaction(): void;
    undo(): void;
    redo(): void;
    clear(): void;
    updateOptions(options: Partial<HistoryPluginOptions>): void;
    release(): void;
    private ensureFilterEventBindings;
    private unbindFilterEvents;
    private getSheetKey;
    private getSnapshotState;
    private setSnapshotState;
    private pushTransaction;
    private trimHistory;
    private pushCommand;
    recordExternalCommand(cmd: HistoryCommand): void;
    private tryCompressCellChange;
    private handleBeforeKeydown;
    private handleChangeCellValue;
    private handleChangeCellValues;
    private ensureFormulaEventBindings;
    private ensureSortEventBindings;
    private unbindSortEvents;
    private unbindFormulaEvents;
    private cloneMergeConfig;
    private isSameMergeConfig;
    private handleMergeCells;
    private handleUnmergeCells;
    private handleMergeConfigChanged;
    private handleAddRecord;
    private handleDeleteRecord;
    private handleUpdateRecord;
    private handleAddColumn;
    private handleDeleteColumn;
    private handleChangeHeaderPosition;
    private normalizeSortState;
    private handleSortClick;
    private handleResizeRow;
    private handleResizeRowEnd;
    private handleResizeColumn;
    private handleResizeColumnEnd;
    private applyCommand;
    private deleteRecordsByReference;
}
