/**
 * 存储变更详情接口
 */
export interface IGMStorageChangeDetail<T> {
    /** 变更的键名 */
    key: string;
    /** 变更前的值 */
    oldValue: T | undefined;
    /** 变更后的值 */
    newValue: T | undefined;
    /** 是否来自其他标签页的变更 */
    remote: boolean;
}
/**
 * 油猴存储管理类
 *
 * 封装 GM_getValue / GM_setValue API，提供类型安全的值存取、
 * 变更监听和默认值支持。
 *
 * @warn 需要授权函数 `GM_getValue`、`GM_setValue`、`GM_deleteValue`、
 *       `GM_addValueChangeListener`、`GM_removeValueChangeListener`
 *
 * @example
 * ```ts
 * // 创建计数器存储
 * const counterStorage = new GmStorage('page_counter', 0);
 *
 * // 获取值
 * console.log(counterStorage.value);
 *
 * // 设置值
 * counterStorage.set(1);
 * ```
 */
export declare class GmStorage<T> {
    protected readonly key: string;
    protected readonly defaultValue: T;
    protected listenerId: number | null;
    constructor(key: string, defaultValue: T);
    /**
     * 获取当前存储的值
     *
     * @alias get()
     */
    get value(): T;
    /**
     * 获取当前存储的值
     */
    get(): T;
    /**
     * 给当前存储设置一个新值
     */
    set(value: T): void;
    /**
     * 移除当前键
     */
    remove(): void;
    /**
     * 监听元素更新, 同时只能存在 1 个监听器
     */
    updateListener(callback: (changeDetail: IGMStorageChangeDetail<T>) => void): void;
    /**
     * 移除元素更新回调
     */
    removeListener(): void;
}
