cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
110 lines • 3.74 kB
TypeScript
/**
* Менеджер персистентности CSElement
* Управляет адаптерами хранилища и предоставляет единый API
*/
import { EventEmitter } from 'eventemitter3';
import { PersistenceManager, StorageAdapter, StorageResult, StorageMetadata, StorageOptions, StorageFilter } from '../types/persistence-interfaces';
import { SerializedElement } from '../types/interfaces';
/**
* Реализация менеджера персистентности
*/
export declare class PersistenceManagerImpl extends EventEmitter implements PersistenceManager {
private adapters;
private defaultAdapterName;
constructor();
/**
* Регистрация адаптера хранилища
*/
registerAdapter(adapter: StorageAdapter): void;
/**
* Получение адаптера по имени
*/
getAdapter(name: string): StorageAdapter | null;
/**
* Получение всех адаптеров
*/
getAllAdapters(): StorageAdapter[];
/**
* Удаление адаптера
*/
removeAdapter(name: string): boolean;
/**
* Установка адаптера по умолчанию
*/
setDefaultAdapter(name: string): void;
/**
* Получение адаптера по умолчанию
*/
getDefaultAdapter(): StorageAdapter | null;
/**
* Сохранение элемента в указанное хранилище
*/
save(elementId: string, adapterName?: string, options?: StorageOptions): Promise<StorageResult<StorageMetadata>>;
/**
* Загрузка элемента из хранилища
*/
load(elementId: string, adapterName?: string, options?: StorageOptions): Promise<StorageResult<SerializedElement>>;
/**
* Удаление элемента из хранилища
*/
delete(elementId: string, adapterName?: string, options?: StorageOptions): Promise<StorageResult<boolean>>;
/**
* Синхронизация между хранилищами
*/
sync(sourceAdapter: string, targetAdapter: string, options?: {
bidirectional?: boolean;
conflictResolution?: 'source' | 'target' | 'latest' | 'merge';
filter?: StorageFilter;
}): Promise<{
synced: number;
conflicts: number;
errors: string[];
}>;
/**
* Резервное копирование
*/
backup(adapterName: string, options?: {
includeMetadata?: boolean;
compression?: boolean;
encryption?: boolean;
}): Promise<{
data: any;
metadata: {
timestamp: number;
recordCount: number;
size: number;
};
}>;
/**
* Восстановление из резервной копии
*/
restore(backupData: any, adapterName: string, options?: {
overwrite?: boolean;
validateData?: boolean;
}): Promise<{
restored: number;
skipped: number;
errors: string[];
}>;
/**
* Получение адаптера для операции
*/
private getAdapterForOperation;
/**
* Разрешение конфликтов при синхронизации
*/
private resolveConflict;
/**
* Подписка на события адаптера
*/
private subscribeToAdapterEvents;
/**
* Отписка от событий адаптера
*/
private unsubscribeFromAdapterEvents;
/**
* Генерация события персистентности
*/
private emitEvent;
}
//# sourceMappingURL=PersistenceManagerImpl.d.ts.map