import NodeCache from 'node-cache'; import { Network } from '../constants'; import { IDexHelper } from '../dex-helper'; import { Logger } from '../types'; type KeyValuePubSubMsg = { expiresAt: number; data: Record; }; type SetPubSubMsg = string[]; export declare class ExpStringPubSub { private dexHelper; private dexKey; private defaultValue?; private defaultTTL?; channel: string; network: Network; localCache: NodeCache; logger: Logger; constructor(dexHelper: IDexHelper, dexKey: string, channel: string, defaultValue?: any | undefined, defaultTTL?: number | undefined); subscribe(): void; publish(data: Record, ttl: number): void; handleSubscription(msg: KeyValuePubSubMsg): void; getAndCache(key: string): Promise; } export declare class ExpHashPubSub { private dexHelper; private hashKey; private ttl; localCache: NodeCache; logger: Logger; constructor(dexHelper: IDexHelper, hashKey: string, ttl: number); subscribe(): void; publish(data: Record): void; handleSubscription(msg: KeyValuePubSubMsg): void; getAndCache(key: string): Promise; } export declare class NonExpSetPubSub { private dexHelper; private dexKey; channel: string; network: Network; set: Set; logger: Logger; constructor(dexHelper: IDexHelper, dexKey: string, channel: string); initializeAndSubscribe(initialSet: string[]): Promise; subscribe(): void; publish(msg: SetPubSubMsg): void; handleSubscription(set: SetPubSubMsg): void; has(key: string): Promise; } export {};