import { ICallback } from 'redis-smq-common';
import { IQueueParams } from '../../queue-manager/index.js';
import { EExchangeQueuePolicy, EExchangeType, IExchangeParams } from '../types/index.js';
export declare class ExchangeFanout {
    protected readonly type = EExchangeType.FANOUT;
    protected logger: import("redis-smq-common").ILogger;
    constructor();
    matchQueues(exchange: string | IExchangeParams): Promise<IQueueParams[]>;
    matchQueues(exchange: string | IExchangeParams, cb: ICallback<IQueueParams[]>): 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;
    bindQueue(queue: IQueueParams | string, exchange: string | IExchangeParams): Promise<void>;
    bindQueue(queue: IQueueParams | string, exchange: string | IExchangeParams, cb: ICallback): void;
    unbindQueue(queue: IQueueParams | string, exchange: string | IExchangeParams): Promise<void>;
    unbindQueue(queue: IQueueParams | string, exchange: string | IExchangeParams, cb: ICallback): void;
    getBindings(exchange: string | IExchangeParams): Promise<IQueueParams[]>;
    getBindings(exchange: string | IExchangeParams, cb: ICallback<IQueueParams[]>): void;
}
//# sourceMappingURL=exchange-fanout.d.ts.map