import type { RedisConfig } from '@lokalise/node-core';
export type QueueDiscoverer = {
    discoverQueues: () => Promise<RedisQueue[]>;
};
type RedisQueue = {
    redisConfig: RedisConfig;
    queueName: string;
};
export declare abstract class AbstractRedisBasedQueueDiscoverer implements QueueDiscoverer {
    protected readonly redisConfigs: RedisConfig[];
    constructor(redisConfigs: RedisConfig[]);
    discoverQueues(): Promise<RedisQueue[]>;
    protected abstract discoverQueuesForInstance(redisConfig: RedisConfig): Promise<RedisQueue[]>;
}
export declare class RedisBasedQueueDiscoverer extends AbstractRedisBasedQueueDiscoverer {
    private readonly queuesPrefix;
    constructor(redisConfigs: RedisConfig[], queuesPrefix: string);
    protected discoverQueuesForInstance(redisConfig: RedisConfig): Promise<RedisQueue[]>;
}
export declare class BackgroundJobsBasedQueueDiscoverer extends AbstractRedisBasedQueueDiscoverer {
    protected discoverQueuesForInstance(redisConfig: RedisConfig): Promise<RedisQueue[]>;
}
export {};
