import GirafeSingleton from '../../base/GirafeSingleton.js'; /** * Manages user data storage and retrieval across different storage sources. * The class supports localStorage and server as storage options (server-side implementation currently not available). * It provides functionality to set, get, save, and delete user data while maintaining the flexibility to target specific paths * within the user data object. */ declare class UserDataManager extends GirafeSingleton { private readonly storageKey; private source?; private readonly WARNING_UNKNOWN_SOURCE; private readonly WARNING_NOT_IMPLEMENTED; setSource(source: string): void; /** * Retrieves a specific part of the user data defined by the storage path. * @param storagePath path in the user data object to the requested value. * @param forceLocalStorage if true, reads user data from the local storage, ignoring the source. * @returns the partial user data object. */ getUserData(storagePath: string, forceLocalStorage?: boolean): unknown; /** * Saves user data to a specific path in the storage. * @param storagePath path in the user data object where the value is saved to. * @param newValue user data value to save. * @param forceLocalStorage if true, saves user data to the local storage, ignoring the source. */ saveUserData(storagePath: string, newValue: unknown, forceLocalStorage?: boolean): void; /** * Delete a specific part of the user data defined by the storage path. * @param storagePath path in the user data object that will be deleted. * @param forceLocalStorage if true, deletes user data in the local storage, ignoring the source. */ deleteUserData(storagePath: string, forceLocalStorage?: boolean): void; /** * Deletes all user data in storage. * @param forceLocalStorage Force deletion from local storage regardless of the currently set data source. */ deleteAllUserData(forceLocalStorage?: boolean): void; /** * Helper: Load data from the user data storage. * @param forceLocalStorage forces loading data from local storage, independent of the specified source. * @returns the full user data object in the storage. */ private load; /** * Helper: Save user data to storage. * @param fullUserDataObject full user data object that is saved. * @param forceLocalStorage forces saving data to local storage, independent of the specified source. * @private */ private save; /** * Helper: Determines if a particular operation should use the local browser storage. */ private isInLocalStorage; } export default UserDataManager;