import { ObjectUpdateType } from '../../../../ObjectUpdateType';
import { Primitive } from '../../../../Primitive';
import { System } from '../../../../system';
import { Dict } from '../../../../types/Dict';
import { Unlisten } from '../../../../types/Unlisten';
import { J } from '../../../../types/interface/J';
import { V } from '../../../../types/interface/V';
export type I = {};
export type O = {};
export default class Storage_ extends Primitive<I, O> implements V, J {
    private _prefix;
    constructor(system: System, id: string, prefix: string);
    protected _storage: () => Storage;
    read(): Dict<string>;
    write(data: any): void;
    get(name: string): any;
    set(name: string, data: any): void;
    delete(name: string): any;
    deepSet(path_: string[], data: any): void;
    deepGet(path_: string[]): any;
    deepDelete(path_: string[]): void;
    deepHas(path: string[]): boolean;
    subscribe(path: string[], key: string, listener: (type: ObjectUpdateType, path: string[], key: string, data: any) => void): Unlisten;
    keys(): string[];
    hasKey(name: string): boolean;
}
