import { Observable, Subject } from 'rxjs'; import { CacheAPI } from '../interfaces/cache-api.interface'; import { CacheChain } from '../interfaces/cache-chain.interface'; import { CoreOptions } from '../interfaces/core-options.interface'; import { Log } from '../interfaces/log.interface'; import { Logger } from '../utils/logger'; export declare class CacheCore implements CacheAPI { _memo_cache: any; _memo_observable: any; chain: CacheChain; options: CoreOptions; $log: Subject; protected logger: Logger; constructor(options: CoreOptions); protected log(): Logger; protected createKey(): string; protected dispatch(chain: CacheChain, key: string, data: any, observer?: { next: (data: any) => void; }): void; protected setCache(chain: CacheChain, key: string, data: any): Promise; protected getFromStateOrCache(observer: any, chain: any, key: any): Observable; protected getFromObservable(observer: any, chain: CacheChain, key: any): Observable; private _getFromStateOrCache; init(runtime: CoreOptions): void; /** * Reset the chaining configuration on the fly * * @returns {CacheCore} * @memberof CacheCore */ resetChain(): CacheCore; /** * Choose whether to use cached results * * @param {boolean} active * @returns {CacheCore} * @memberof CacheCore */ cache(active: boolean): CacheCore; /** * Choose whether to use cached results * * @param {boolean} active * @returns {CacheCore} * @memberof CacheCore */ memo(active: boolean): CacheCore; /** * Define a custom key to be used as a identifier for the result set * * @param {string} name * @returns {CacheCore} * @memberof CacheCore */ key(name: string): CacheCore; /** * Define an observable to get a value after state and cache * * @param {string} name * @returns {CacheCore} * @memberof CacheCore */ observable(_observable: CacheChain['useObservable']): CacheCore; get(): Observable; } export declare class Cache extends CacheCore { }