import type { PageSpyPlugin, OnInitParams } from '@huolala-tech/page-spy-types';
/**
 * 获取存储项
 * 优先级：原生存储 > Web 存储 > 内存存储
 * @param key - 存储项的键名
 * @returns 存储值，不存在时返回 null
 */
export declare const getStorageItem: (key: string) => Promise<string | null>;
/**
 * 设置存储项
 * 优先级：原生存储 > Web 存储 > 内存存储
 * @param key - 存储项的键名
 * @param value - 存储项的值
 */
export declare const setStorageItem: (key: string, value: string) => void;
/**
 * 清空所有存储项
 * 同时清空持久化存储和内存存储
 */
export declare const clearStorage: () => void;
/**
 * 删除指定存储项
 * 若原生/Web 存储不支持 removeItem，则通过设置为空字符串来模拟删除
 * @param key - 存储项的键名
 */
export declare const removeStorageItem: (key: string) => void;
/** 存储操作集合，对外暴露的统一接口 */
export declare const storage: {
    getStorageItem: (key: string) => Promise<string | null>;
    setStorageItem: (key: string, value: string) => void;
    removeStorageItem: (key: string) => void;
    clearStorage: () => void;
};
/**
 * Storage 插件
 * 实现 PageSpyPlugin 接口，通过 WebSocket 监听远程存储操作指令，
 * 并在本地执行对应的存储增删改查操作
 */
export default class StoragePlugin implements PageSpyPlugin {
    /** 插件名称 */
    name: string;
    /** 标记插件是否已初始化，防止重复初始化 */
    static hasInitd: boolean;
    /** 存储操作集合 */
    storage: {
        getStorageItem: (key: string) => Promise<string | null>;
        setStorageItem: (key: string, value: string) => void;
        removeStorageItem: (key: string) => void;
        clearStorage: () => void;
    };
    /** WebSocket 连接存储实例，用于监听和响应远程指令 */
    private socketStore;
    /**
     * 处理远程存储操作事件
     * 支持 set、remove、clear、get 四种操作
     * @param event - 远程交互事件
     * @param reply - 回复函数，用于将操作结果返回给远程端
     */
    private onStorage;
    /**
     * 插件初始化
     * 注册 WebSocket 监听器，监听远程存储操作指令
     * @param socketStore - WebSocket 连接存储实例
     */
    onInit({ socketStore }: OnInitParams<any>): void;
    /**
     * 插件重置
     * 移除 WebSocket 监听器，清理状态
     */
    onReset(): void;
}
