import { ExchangeDirect, IExchangeParams, IQueueParams } from 'redis-smq';
export declare class ExchangeDirectService {
    protected exchangeDirect: {
        getRoutingKeysAsync: (exchange: string | IExchangeParams) => Promise<string[]>;
        getRoutingKeyQueuesAsync: (exchange: string | IExchangeParams, routingKey: string) => Promise<IQueueParams[]>;
        matchQueuesAsync: (exchange: string | IExchangeParams, routingKey: string) => Promise<IQueueParams[]>;
        createAsync: ((exchange: string | IExchangeParams, queuePolicy: import("redis-smq").EExchangeQueuePolicy) => Promise<undefined>) | ((exchange: string | IExchangeParams, queuePolicy: import("redis-smq").EExchangeQueuePolicy) => Promise<void>);
        bindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingKey: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingKey: string) => Promise<void>);
        unbindQueueAsync: ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingKey: string) => Promise<undefined>) | ((queue: string | IQueueParams, exchange: string | IExchangeParams, routingKey: string) => Promise<void>);
        deleteAsync: ((exchange: string | IExchangeParams) => Promise<undefined>) | ((exchange: string | IExchangeParams) => Promise<void>);
    } & ExchangeDirect;
    constructor(exchangeDirect: ExchangeDirect);
    bindQueue(queue: IQueueParams, exchange: IExchangeParams, routingKey: string): Promise<void>;
    unbindQueue(queueParams: IQueueParams, exchange: IExchangeParams, routingKey: string): Promise<void>;
    matchQueues(exchange: IExchangeParams, routingKey: string): Promise<IQueueParams[]>;
    deleteExchange(exchange: IExchangeParams): Promise<void>;
    getRoutingKeys(exchange: IExchangeParams): Promise<string[]>;
    getRoutingKeyQueues(exchange: IExchangeParams, routingKey: string): Promise<IQueueParams[]>;
}
//# sourceMappingURL=ExchangeDirectService.d.ts.map