import { Module } from "@intuitionrobotics/ts-common";
export interface StorageKeyEvent {
    __onStorageKeyEvent(event: StorageEvent): void;
}
export declare class StorageModule_Class extends Module {
    private cache;
    constructor();
    protected init(): void;
    private handleStorageEvent;
    getStorage: (persist: boolean) => Storage;
    set(key: string, value: string | number | object, persist?: boolean): void;
    delete(key: string, persist?: boolean): void;
    clearCache(key: string): void;
    get(key: string, defaultValue?: string | number | object, persist?: boolean): string | number | object | null;
    query<T>(query: RegExp): T[];
    deleteAll<T>(query: RegExp): void;
}
export declare const StorageModule: StorageModule_Class;
export declare class StorageKey<ValueType = string | number | object> {
    private readonly key;
    private readonly persist;
    constructor(key: string, persist?: boolean);
    get(defaultValue?: ValueType): ValueType;
    patch(value: ValueType extends object ? Partial<ValueType> : ValueType): any;
    set(value: ValueType): ValueType;
    delete(): void;
    clearCache(): void;
}
