export interface KeyValueStore { impl: any; value(key: string): Promise; strValue(key: string): Promise; valueMod(key: string, value: any): Promise; strValueMod(key: string, str: string): Promise; valueIncr(key: string): Promise; valueDel(...keys: string[]): Promise; valueDelAfter(key: string, seconds: number): Promise; map(key: string): Promise; mapMod(key: string, changes: T): Promise; mapDel(key: string, ...i: string[]): Promise; mapSize(key: string): Promise; mapItem(key: string, i: string): Promise; mapItemMod(key: string, i: string, value: any): Promise; mapItemIncr(key: string, i: string): Promise; strMap(key: string): Promise; strMapMod(key: string, changes: T): Promise; strMapItem(key: string, i: string): Promise; strMapItemMod(key: string, i: string, str: string): Promise; broker(): MessageBroker; close(): void; } export interface MessageBroker { subscriberAdd(subscriber: Subscriber, ...topics: string[]): Promise; subscriberDel(subscriber: Subscriber, ...topics: string[]): Promise; publish(topic: string, message: string): Promise; } export interface Subscriber { messageReceived?(topic: string, message: string): any; } export declare function redisStore(config?: any): KeyValueStore; export declare class Subscription { client: any; topics: Set; } export declare type Result = (err, res) => void; export declare class RedisStore implements KeyValueStore, MessageBroker { impl: any; config: any; private subscriptions; static initial(config?: any): RedisStore; value(key: string): Promise; strValue(key: string): Promise; valueMod(key: string, value: any): Promise; strValueMod(key: string, str: string): Promise; valueIncr(key: string): Promise; valueDel(...keys: string[]): Promise; valueDelAfter(key: string, seconds: number): Promise; map(key: string): Promise; mapMod(key: string, changes: T): Promise; mapDel(key: string, ...i: string[]): Promise; mapSize(key: string): Promise; mapItem(key: string, i: string): Promise; mapItemMod(key: string, i: string, value: any): Promise; mapItemIncr(key: string, i: string): Promise; strMap(key: string): Promise; strMapMod(key: string, changes: T): Promise; strMapItem(key: string, i: string): Promise; strMapItemMod(key: string, i: string, str: string): Promise; broker(): MessageBroker; subscriberAdd(subscriber: Subscriber, ...topics: string[]): Promise; private addSubscription(sub, topics); subscriberDel(subscriber: Subscriber, ...topics: string[]): Promise; publish(topic: string, message: string): Promise; close(): void; }