import { ExchangeFanout, IExchangeParams, IQueueParams } from 'redis-smq';
export declare class ExchangeFanoutService {
    protected exchangeFanout: {
        matchQueuesAsync: (exchange: string | IExchangeParams) => Promise<IQueueParams[]>;
        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>);
        bindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams) => Promise<void>);
        unbindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams) => Promise<void>);
    } & ExchangeFanout;
    constructor(exchangeFanout: ExchangeFanout);
    bindQueue(queueParams: IQueueParams, fanoutParams: IExchangeParams): Promise<void>;
    unbindQueue(queueParams: IQueueParams, fanoutParams: IExchangeParams): Promise<void>;
    matchQueues(fanoutParams: IExchangeParams): Promise<IQueueParams[]>;
    deleteExchange(fanoutParams: IExchangeParams): Promise<void>;
}
//# sourceMappingURL=ExchangeFanoutService.d.ts.map