import { DispositionalCachelike } from "./cache"; import { MultiPowerStorelike, FetchPolicy, ListenMessage } from "../operations"; export interface MultiCachelike extends DispositionalCachelike, MultiPowerStorelike { pushCache(...cache: DispositionalCachelike[]): void; popCache(): DispositionalCachelike | undefined; getThrough(path: A): Promise; setThrough(path: A, value: T): Promise; } export declare class MultiCache implements MultiCachelike { private cacheOrder; private monitors; private safeKey; /** * * @param cacheOrder */ constructor(cacheOrder?: DispositionalCachelike[]); /** * * @param cache */ pushCache(...cache: DispositionalCachelike[]): void; /** * * @returns */ popCache(): DispositionalCachelike | undefined; /** * * @param path * @param cb * @returns */ dispositionalRaceGet(path: A, cb: ((data: T | undefined, msg: ListenMessage) => void | Promise)): Promise; /** * * @param path * @param cb * @returns */ dispositionalFifoGet(path: A, cb: ((data: T | undefined, msg: ListenMessage) => void | Promise)): Promise; /** * * @param path * @param cb * @returns */ eagerGet(path: A, cb: ((data: T | undefined, msg: ListenMessage) => void | Promise)): Promise; /** * * @param path * @param cb * @param policy */ listen(path: A, cb: ((data: T | undefined, msg: ListenMessage) => void | Promise), policy?: FetchPolicy): void; /** * * @param path * @returns */ getThrough(path: A): Promise; /** * * @param path * @returns */ get(path: A): Promise; /** * * @param path * @param value * @returns */ setThrough(path: A, value: T): Promise; /** * * @param path * @param value * @returns */ set(path: A, value: T): Promise; }