import { Exchange } from './exchange';
import { EExchangeType, IRequiredConfig, ITopicExchangeParams, TQueueParams, TTopicParams } from '../../../types';
import { RedisClient } from 'redis-smq-common';
import { ICallback } from 'redis-smq-common/dist/types';
export declare class TopicExchange extends Exchange<TTopicParams | string, EExchangeType.TOPIC> {
    constructor(topic: TTopicParams | string);
    protected validateBindingParams(topicParams: TTopicParams | string): TTopicParams | string;
    protected getTopicParams(config: IRequiredConfig): TTopicParams;
    matchQueues(config: IRequiredConfig, queues: TQueueParams[], cb: ICallback<TQueueParams[]>): void;
    getQueues(redisClient: RedisClient, config: IRequiredConfig, cb: ICallback<TQueueParams[]>): void;
    static fromJSON(json: Partial<ITopicExchangeParams>): TopicExchange;
}
