import type { Redis } from 'ioredis'; import type { BroadcastProvider, TaskEvent } from '@taskcast/core'; import { type RedisOperationOptions } from './connectivity.js'; type SubscriptionMode = 'channels' | 'pattern'; export declare class RedisBroadcastProvider implements BroadcastProvider { private pub; private sub; private options; private handlers; private channelPrefix; private patternSubscribed; private patternGeneration; private patternSubscription; private disposed; private readonly dispatch; private readonly dispatchPattern; private readonly markPatternUnavailable; constructor(pub: Redis, sub: Redis, options?: { prefix?: string; subscriptionMode?: SubscriptionMode; } & RedisOperationOptions); startPatternSubscription(): Promise; markPatternSubscriptionUnavailable(): void; isPatternSubscribed(): boolean; dispose(): void; publish(channel: string, event: TaskEvent): Promise; subscribe(channel: string, handler: (event: TaskEvent) => void): () => void; } export {}; //# sourceMappingURL=broadcast.d.ts.map