export interface Storelike { get(path: A): Promise; set(path: A, value: T): Promise; } export interface MultiStorelike extends Storelike { getThrough(path: A): Promise; setThrough(path: A, value: T): Promise; } export declare enum FetchPolicy { FIFO = "FIFO", DRACE = "DRACE", EAGER = "EAGER" } export declare enum ListenMessage { END = "END", CONTINUE = "CONTINUE" } export interface Listenerlike { listen(path: A, cb: (data: T | undefined, msg: ListenMessage) => void | Promise, policy?: FetchPolicy): void; } export interface Monitorlike { } export interface PowerStorelike extends Storelike, Listenerlike, Monitorlike { } export interface MultiPowerStorelike extends MultiStorelike, Listenerlike, Monitorlike { }