import { ExchangeTopic, IExchangeParams, IQueueParams } from 'redis-smq';
export declare class ExchangeTopicService {
    protected exchangeTopic: {
        matchQueuesAsync: (exchange: string | IExchangeParams, routingKey: string) => Promise<IQueueParams[]>;
        getBindingPatternsAsync: (exchange: string | IExchangeParams) => Promise<string[]>;
        getBindingPatternQueuesAsync: (exchange: string | IExchangeParams, bindingPattern: string) => Promise<IQueueParams[]>;
        bindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string) => Promise<void>);
        unbindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string) => Promise<void>);
        createAsync: ((exchange: string | IExchangeParams, queuePolicy: import("redis-smq").EExchangeQueuePolicy) => Promise<undefined>) | ((exchange: string | IExchangeParams, queuePolicy: import("redis-smq").EExchangeQueuePolicy) => Promise<void>);
        deleteAsync: ((exchange: string | IExchangeParams) => Promise<undefined>) | ((exchange: string | IExchangeParams) => Promise<void>);
    } & ExchangeTopic;
    constructor(exchangeTopic: ExchangeTopic);
    bindQueue(queue: IQueueParams, exchange: IExchangeParams, bindingPattern: string): Promise<void>;
    unbindQueue(queueParams: IQueueParams, exchange: IExchangeParams, bindingPattern: string): Promise<void>;
    matchQueues(exchange: IExchangeParams, bindingPattern: string): Promise<IQueueParams[]>;
    deleteExchange(exchange: IExchangeParams): Promise<void>;
    getBindingPatterns(exchange: IExchangeParams): Promise<string[]>;
    getBindingPatternQueues(exchange: IExchangeParams, bindingPattern: string): Promise<IQueueParams[]>;
}
//# sourceMappingURL=ExchangeTopicService.d.ts.map