import { ICallback, ILogger, Runnable, TRedisClientEvent } from 'redis-smq-common';
import { IQueueParams, IQueueProperties } from '../queue-manager/index.js';
import { Producer } from './producer.js';
export declare class PubSubTargetResolver extends Runnable<Pick<TRedisClientEvent, 'error'>> {
    protected internalEventBus: import("redis-smq-common").EventBusRedis<import("../index.js").TRedisSMQEvent>;
    protected producerId: string;
    protected logger: ILogger;
    protected pubSubTargets: Record<string, string[]>;
    constructor(producer: Producer, logger: ILogger);
    private getQueueKey;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
    protected onConsumerGroupCreated: (queue: IQueueParams, groupId: string) => void;
    protected onConsumerGroupDeleted: (queue: IQueueParams, groupId: string) => void;
    protected onQueueCreated: (queue: IQueueParams, properties: IQueueProperties) => void;
    protected onQueueDeleted: (queue: IQueueParams) => void;
    protected subscribeToEvents: (cb: ICallback<void>) => void;
    protected unsubscribeFromEvents: (cb: ICallback) => void;
    protected loadAndCacheInitialTargets: (cb: ICallback<void>) => void;
    protected clearCache: (cb: ICallback<void>) => void;
    resolveTargets(queue: IQueueParams): {
        isPubSub: boolean;
        targets: string[];
    };
}
//# sourceMappingURL=pub-sub-target-resolver.d.ts.map