/**
 * @class
 *  A utility for managing data storage based on specific conditions.
 */
declare class StorageService {
    /**
     * @method
     * @param {string} key a unique identifier
     * @returns data of the storage
     */
    static get<T = unknown>(key: string, shouldPersist?: boolean): T;
    /**
     * @method
     * Set the data into the store
     * @param {string} key a unique identifier
     * @param {string} value data that we need to set on the specific key
     */
    static set(key: string, value: string, shouldPersist?: boolean): void;
    /**
     * @method
     * Remove data from the storage
     * @param {string} key a unique identifier
     */
    static remove(key: string, shouldPersist?: boolean): void;
    /**
     * @method
     * Clear the data of the storage
     */
    static clear(shouldPersist?: boolean): void;
    /** @property {_tempStore}
     * Instance of the MemoryStorage */
    private static readonly _tempStore;
    /**
     * @method
     * Cookie is enabled or disable
     * @returns true/false
     */
    private static _isCookieEnabled;
    /**
     * This function get the storage according to cookie enable or disable
     *  @param {boolean | undefined} shouldPersist Wether we should try to store in local storage for persistence,
     *  this will not work if cookies are disabled with a fallback to memory storage
     * @returns storage
     */
    private static _getStorage;
}

export { StorageService as default };
