/**
 * 缓存相关
 */
type StorageType = "session" | "local";
interface StorageSetOption {
    storage?: StorageType;
    /** 数据有效期, 单位秒, 默认: -1 - 永久存储 */
    expire?: number;
}
/**
 * 存储值到 Storage 中
 * @param key 设置的 key
 * @param value 设置的值
 * @param [option.storage] session 或 local, 默认: session
 * @param [option.expire] 数据有效期, 单位秒, 默认: -1 - 永久存储
 *
 * @example <caption>1. 存储到 SessionStorage</caption>
 * set("key", "value");
 *
 * @example <caption>2. 存储到 LocalStorage</caption>
 * set("key", "value", { storage: "local" });
 */
export declare function set(key: string, value: any, option?: StorageSetOption): void;
/**
 * 清空所有的缓存内容
 * @param storage 待清空的缓存对象
 */
export declare function clear(storage?: StorageType): void;
/**
 * 删除存储到 Storage 中的数据
 * @param key
 * @param storage
 */
export declare function remove(key: string, storage?: StorageType): void;
/** 从 Storage 中获取数据时的配置 */
interface StorageQueryOption {
    /** 数据是否持久化, 默认为: false, 设置为 true 则会在每一次取出数据后删除 */
    delete?: boolean;
    /** 存储对象, session、local */
    storage?: StorageType;
}
/**
 * 从 Storage 中取出数据
 * @param key 保存时的 key
 * @param defaultValue 没有数据时的默认值
 * @param [option.delete] 是否在取出后，删除数据，默认：false - 取出后删除数据
 * @param [option.storage] 使用的 Storage ，可以是 localStorage、sessionStorage, 默认: localStorage、sessionStorage
 * @returns Storage 中 key 对应的数据
 */
export declare function get<T>(key: string, defaultValue?: T, option?: StorageQueryOption): T;
export {};
