import EventEmitter2 from "eventemitter2"; import { BaseCollectorReducerAction, ISerializableUndoDataType, ISerializableUndoRedoStackData, ISerializableUndoStackId, ISerializableUndoStackItemData, WorkId } from "../collector"; import type { Room } from "../plugin/types"; import { BaseSubWorkModuleProps, ApplianceManagerLike } from "../plugin/types"; import { MasterController } from "../core/mainEngine"; export interface ILocalStorageDataItem extends ISerializableUndoDataType { key: WorkId; } export type IUndoStackItem = Omit & { id: ISerializableUndoStackId; data: Set; }; export type UndoRedoMethodProps = Omit & { viewId: string; enableGlobal: boolean; }; export declare class UndoRedoMethod { static sdkCallBack: (name: NAME, listener: any) => void; static MaxStackLength: number; static waitTime: number; emitter: EventEmitter2; undoStack: IUndoStackItem[]; redoStack: IUndoStackItem[]; readonly worker: MasterController; readonly control: ApplianceManagerLike; readonly room: Room; readonly viewId: string; readonly enableGlobal: boolean; private isTicking; private _undoTickerId?; private scenePath?; private tickStartStorerCache?; private excludeIds; constructor(props: UndoRedoMethodProps); private handleArrayChange; get collector(): import("../collector").Collector | undefined; get undoTickerId(): number | undefined; get tmpTickStartStorerCache(): Map | undefined; get uid(): string; addExcludeIds(ids: string[]): void; undoTickerStart(id: number, scenePath: string): void; undoTickerEnd(id: number, scenePath: string): void; undoTickerEndSync(id: number, viewId: string, scenePath: string, isEmit?: boolean): void; private transformToUndoStackItem; pullServiceData(serviceData?: ISerializableUndoRedoStackData): void; undo(scenePath: string): number; redo(scenePath: string): number; clear(): void; clearUndo(): void; clearRedo(): void; canUndo(): boolean; canRedo(): boolean; onChangeScene: import("lodash").DebouncedFunc<() => void>; onFocusView(): void; private especialDiff; private diffFun; private isDrawEffectiveScene; private isDeleteEffectiveScene; private isOldEffectiveScene; private isNewEffectiveScene; private refreshPlugin; }