@sailboat-computer/data-storage
Version:
Shared data storage library for sailboat computer v3
67 lines (55 loc) • 1.38 kB
text/typescript
/**
* Storage Configuration Manager Interface
*
* This interface defines the common methods for all storage configuration manager implementations.
*/
import { EventBus } from '../event-bus';
import { StorageConfig, UnifiedStorageManagerOptions } from '../types';
/**
* Storage configuration manager interface
*/
export interface IStorageConfigManager {
/**
* Initialize the configuration manager
*/
initialize(): Promise<void>;
/**
* Set the event bus
* @param eventBus Event bus
*/
setEventBus(eventBus: EventBus): void;
/**
* Reload configuration
*/
reload(): Promise<void>;
/**
* Reset configuration to default
*/
resetToDefault(): Promise<void>;
/**
* Apply configuration changes
*/
applyChanges(): Promise<void>;
/**
* Publish configuration change event
*/
publishConfigChanged(): Promise<void>;
/**
* Get the storage configuration
*/
getStorageConfig(): StorageConfig;
/**
* Get the unified storage manager options
*/
getUnifiedStorageManagerOptions(): UnifiedStorageManagerOptions;
/**
* Save configuration
* @param config Configuration to save
* @param description Optional description
*/
saveConfig(config: StorageConfig, description?: string): Promise<void>;
/**
* Shutdown the configuration manager
*/
shutdown(): void;
}