import * as theia from '@theia/plugin'; import { Disposable, DisposableGroup, Event } from '@theia/core'; import { StorageExt } from '../common/plugin-api-rpc'; import { KeysToAnyValues, KeysToKeysToAnyValue } from '../common/types'; import { RPCProtocol } from '../common/rpc-protocol'; export declare class Memento implements theia.Memento { private readonly pluginId; private readonly isPluginGlobalData; private readonly storage; private cache; constructor(pluginId: string, isPluginGlobalData: boolean, storage: InternalStorageExt); keys(): string[]; get(key: string): T | undefined; get(key: string, defaultValue: T): T; update(key: string, value: any): Promise; } export declare class GlobalState extends Memento { /** @todo: API is not yet implemented. */ setKeysForSync(keys: readonly string[]): void; } export declare const InternalStorageExt: unique symbol; export interface InternalStorageExt extends StorageExt { init(initGlobalData: KeysToKeysToAnyValue, initWorkspaceData: KeysToKeysToAnyValue): void; getPerPluginData(key: string, isGlobal: boolean): KeysToAnyValues; setPerPluginData(key: string, value: KeysToAnyValues, isGlobal: boolean): Promise; storageDataChangedEvent(listener: (e: KeysToKeysToAnyValue) => any, thisArgs?: any, disposables?: DisposableGroup): Disposable; $updatePluginsWorkspaceData(workspaceData: KeysToKeysToAnyValue): void; } /** * Singleton. * Is used to proxy storage requests to main side. */ export declare class KeyValueStorageProxy implements InternalStorageExt { private storageDataChangedEmitter; readonly storageDataChangedEvent: Event; private readonly proxy; private globalDataCache; private workspaceDataCache; constructor(rpc: RPCProtocol); init(initGlobalData: KeysToKeysToAnyValue, initWorkspaceData: KeysToKeysToAnyValue): void; getPerPluginData(key: string, isGlobal: boolean): KeysToAnyValues; setPerPluginData(key: string, value: KeysToAnyValues, isGlobal: boolean): Promise; $updatePluginsWorkspaceData(workspaceData: KeysToKeysToAnyValue): void; } //# sourceMappingURL=plugin-storage.d.ts.map