import { ICallback, ILogger, Runnable, TRedisClientEvent } from 'redis-smq-common';
import { RedisClient } from '../../common/redis-client/redis-client.js';
import { EventBus } from '../../common/event-bus/event-bus.js';
import { IQueueParams, IQueueProperties } from '../queue/index.js';
import { Producer } from './producer.js';
export declare class QueueConsumerGroupsCache extends Runnable<Pick<TRedisClientEvent, 'error'>> {
    protected redisClient: RedisClient;
    protected eventBus: EventBus;
    protected producerId: string;
    protected logger: ILogger;
    protected consumerGroupsByQueues: Record<string, string[]>;
    constructor(producer: Producer, redisClient: RedisClient, eventBus: EventBus);
    protected getLogger(): ILogger;
    protected goingUp(): ((cb: ICallback<void>) => void)[];
    protected goingDown(): ((cb: ICallback<void>) => void)[];
    protected addConsumerGroup: (queue: IQueueParams, groupId: string) => void;
    protected deleteConsumerGroup: (queue: IQueueParams, groupId: string) => void;
    protected addQueue: (queue: IQueueParams, properties: IQueueProperties) => void;
    protected deleteQueue: (queue: IQueueParams) => void;
    protected subscribe: (cb: ICallback<void>) => void;
    protected unsubscribe: (cb: ICallback<void>) => void;
    protected loadConsumerGroups: (cb: ICallback<void>) => void;
    protected cleanUpConsumerGroups: (cb: ICallback<void>) => void;
    getConsumerGroups(queue: IQueueParams): {
        exists: boolean;
        consumerGroups: string[];
    };
}
//# sourceMappingURL=queue-consumer-groups-cache.d.ts.map