export interface IDataProvider { fetchData(): Promise; } interface ICache { data: any; provider: IDataProvider; } interface ICommand { type: string; keys: Array; } interface ICommandCB { (cmd: ICommand): void; } interface IMessageProvider { subscribe(cb: ICommandCB): any; publish(cmd: ICommand): Promise; } export declare class RedisProvider implements IMessageProvider { private client; private sub; private readonly SUB_KEY; constructor(config: any); subscribe(cb: ICommandCB): void; publish(cmd: ICommand): Promise; } export default class CacheService { private static cacheMap; private static provider; private static readonly CMD_CLEAR; static init(provider: IMessageProvider): Promise; static clear(keys?: Array): Promise; static add(key: string, cache: ICache): Promise; static update(key: string): Promise; static getData(key: string, provider: IDataProvider): Promise; private static batchUpdate; } export {};