cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
97 lines • 3.01 kB
TypeScript
import { HistoryManager, HistoryOperation, HistorySnapshot, HistoryState, HistoryConfig, HistoryEvent, HistoryEventCallback, HistoryExport, HistoryDiff } from '../types/history-interfaces';
/**
* Реализация менеджера истории изменений
*/
export declare class HistoryManagerImpl implements HistoryManager {
private operations;
private snapshots;
private currentIndex;
private config;
private eventListeners;
private stats;
constructor(config?: HistoryConfig);
/**
* Добавить операцию в историю
*/
addOperation(operation: Omit<HistoryOperation, 'id' | 'timestamp'>): void;
/**
* Создать снимок состояния
*/
createSnapshot(data: any, description: string): HistorySnapshot;
/**
* Отменить последнюю операцию
*/
undo(): Promise<any>;
/**
* Повторить отмененную операцию
*/
redo(): Promise<any>;
/**
* Отменить до определенной операции
*/
undoTo(operationId: string): Promise<any>;
/**
* Повторить до определенной операции
*/
redoTo(operationId: string): Promise<any>;
/**
* Получить текущее состояние истории
*/
getState(): HistoryState;
/**
* Получить список операций
*/
getOperations(limit?: number): HistoryOperation[];
/**
* Получить список снимков
*/
getSnapshots(limit?: number): HistorySnapshot[];
/**
* Очистить историю
*/
clear(): void;
/**
* Очистить старые записи
*/
cleanup(): void;
/**
* Получить операцию по ID
*/
getOperation(id: string): HistoryOperation | null;
/**
* Получить снимок по ID
*/
getSnapshot(id: string): HistorySnapshot | null;
/**
* Экспорт истории
*/
export(): HistoryExport;
/**
* Импорт истории
*/
import(data: HistoryExport): void;
/**
* Подписка на события истории
*/
on(event: HistoryEvent, callback: HistoryEventCallback): void;
/**
* Отписка от событий
*/
off(event: HistoryEvent, callback: HistoryEventCallback): void;
/**
* Создать diff между двумя состояниями
*/
createDiff(before: any, after: any, path?: string[]): HistoryDiff[];
private generateId;
private canPerformUndo;
private canPerformRedo;
private shouldCreateSnapshot;
private performCleanupIfNeeded;
private calculateSize;
private calculateTotalSize;
private cleanupBySize;
private deepClone;
private compressData;
private emitEvent;
}
//# sourceMappingURL=HistoryManagerImpl.d.ts.map