import { createLogger, ICallback } from 'redis-smq-common';
import { IQueueParams } from '../../queue-manager/index.js';
import { EExchangeQueuePolicy, EExchangeType, IExchangeParams } from '../index.js';
export declare class ExchangeTopic {
    protected readonly type = EExchangeType.TOPIC;
    protected readonly logger: ReturnType<typeof createLogger>;
    constructor();
    matchQueues(exchange: string | IExchangeParams, routingKey: string): Promise<IQueueParams[]>;
    matchQueues(exchange: string | IExchangeParams, routingKey: string, cb: ICallback<IQueueParams[]>): void;
    getRoutingPatterns(exchange: string | IExchangeParams): Promise<string[]>;
    getRoutingPatterns(exchange: string | IExchangeParams, cb: ICallback<string[]>): void;
    getRoutingPatternBoundQueues(exchange: string | IExchangeParams, bindingPattern: string): Promise<IQueueParams[]>;
    getRoutingPatternBoundQueues(exchange: string | IExchangeParams, bindingPattern: string, cb: ICallback<IQueueParams[]>): void;
    bindQueue(queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string): Promise<void>;
    bindQueue(queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string, cb: ICallback): void;
    unbindQueue(queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string): Promise<void>;
    unbindQueue(queue: string | IQueueParams, exchange: string | IExchangeParams, routingPattern: string, cb: ICallback): void;
    create(exchange: string | IExchangeParams, queuePolicy: EExchangeQueuePolicy): Promise<void>;
    create(exchange: string | IExchangeParams, queuePolicy: EExchangeQueuePolicy, cb: ICallback): void;
    delete(exchange: string | IExchangeParams): Promise<void>;
    delete(exchange: string | IExchangeParams, cb: ICallback): void;
    getBindings(exchange: string | IExchangeParams): Promise<Record<string, IQueueParams[]>>;
    getBindings(exchange: string | IExchangeParams, cb: ICallback<Record<string, IQueueParams[]>>): void;
}
//# sourceMappingURL=exchange-topic.d.ts.map