type DefaultVal<T> = T extends Record<string, any> ? Partial<T> : T;
interface StorageOptions<T = any> {
    initialValue?: T;
    debug: boolean;
    cached: boolean;
}
export declare class Storage<T = any> {
    private readonly key;
    private value;
    private options;
    constructor(key: string, options?: Partial<StorageOptions<T>>);
    _debug(...args: string[]): void;
    /**
     * 设置值
     */
    setItem(val: T): T;
    /**
     * 获取值
     */
    getItem(): T | null;
    getItem(defaultVal: DefaultVal<T>): T;
    /**
     * 删除值
     */
    removeItem(): void;
    /**
     * 更新值
     */
    updateItem(val: DefaultVal<T>): T;
    /**
     * 获取值后，删除存储的值
     */
    getItemOnce(): T | null;
    getItemOnce(defaultVal: DefaultVal<T>): T;
    /**
     * 优先从缓存中获取值
     */
    getItemWithCache(): T | null;
    getItemWithCache(defaultVal: DefaultVal<T>): T;
    /**
     * 清除缓存
     */
    clearCache(): void;
}
export {};
