import { ExchangeFanOut, IQueueParams } from 'redis-smq';
export declare class ExchangeFanOutService {
    protected exchangeFanOut: {
        getQueuesAsync: (exchangeParams: string) => Promise<IQueueParams[]>;
        saveExchangeAsync: ((exchangeParams: string) => Promise<undefined>) | ((exchangeParams: string) => Promise<void>);
        deleteExchangeAsync: ((exchangeParams: string) => Promise<undefined>) | ((exchangeParams: string) => Promise<void>);
        bindQueueAsync: ((queue: string | IQueueParams, exchangeParams: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchangeParams: string) => Promise<void>);
        unbindQueueAsync: ((queue: string | IQueueParams, exchangeParams: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchangeParams: string) => Promise<void>);
        getAllExchangesAsync: () => Promise<string[]>;
        getQueueExchangeAsync: ((queue: string | IQueueParams) => Promise<null>) | ((queue: string | IQueueParams) => Promise<string>);
        shutdownAsync: (() => Promise<undefined>) | (() => Promise<void>);
    } & ExchangeFanOut;
    constructor(exchangeFanOut: ExchangeFanOut);
    getAllExchanges(queueParams?: IQueueParams): Promise<string[]>;
    saveExchange(fanOutName: string): Promise<void>;
    bindQueue(queueParams: IQueueParams, fanOutName: string): Promise<void>;
    getQueues(fanOutName: string): Promise<IQueueParams[]>;
}
//# sourceMappingURL=ExchangeFanOutService.d.ts.map