import { Subscription } from 'rxjs'; import * as ioredis from 'ioredis'; export interface AppEvent { name: string; data: T; } export declare class PubSubManager { private redis; constructor(redis: ioredis.Redis | ioredis.Cluster); disconnect(): void; subscriber: ioredis.Redis | ioredis.Cluster; private _listener; private _messageSubject; private _subscriptions; get messages(): import("rxjs").Observable<{ channel: string; message: any; }>; subscribe(id: string): void; unsubscribe(id: string): void; publish(channel: string, message: any): Promise; } export declare class PubSub { readonly manager: PubSubManager; readonly id: string; readonly selfSubscribe: boolean; constructor(manager: PubSubManager, id: string, selfSubscribe?: boolean); private _messageSubject; private _listener; private _subscription; readonly messages: import("rxjs").Observable; publish(message: T): Promise; subscribe(handler: (message: T) => any): Subscription; }