import { BusEvent, EventBus } from './eventBus.js'; import { Logger } from './logging.js'; export interface StateEvent extends BusEvent { data: { old: object; new: object; }; } export declare type StateListener = (StateEvent: any) => any; interface Tools { logger: Logger; bus: EventBus; } export declare class SharedState { private tools; private frozenState; constructor(tools: Tools); cleanKey(key: string): string; addListener(key: string, listener: StateListener): boolean; removeListener(key: string, listener: StateListener): boolean; getState(key: string): Promise; /** * Change the state associated with the given key, * and trigger a lw-sc: event if handler() * returns an object. NOOP of handler returns null * or undefined. * * @param key * @param handler */ changeState(key: string, handler: (object: any) => object | Promise): Promise; static get providerName(): string; } export declare function getSharedState(): Promise; export {};