import type { ChannelWrapper } from 'amqp-connection-manager';
import type { AbstractSubscriptionEvent, IChannelWrapper, IHandlerWrapper } from '../../interface';
import { DefaultedRetryOptions, ExchangeOptions, RetryStrategyEnum } from '../../interface';
import type { IRetryStrategy } from './IRetryStrategy';
export declare class DelayedMessageExchangeRetryStrategy implements IRetryStrategy {
    private readonly rootRetryOptions;
    protected readonly assertExchangeOptions: ExchangeOptions;
    readonly strategy = RetryStrategyEnum.DELAYED_MESSAGE_EXCHANGE;
    constructor(rootRetryOptions: DefaultedRetryOptions, assertExchangeOptions: ExchangeOptions);
    private get logger();
    setupInfrastructure(channelWrapper: ChannelWrapper, wrappersWithRetryStrategy: IHandlerWrapper[]): Promise<void>;
    requeue(channelWrapper: IChannelWrapper, handlerWrapper: IHandlerWrapper, event: AbstractSubscriptionEvent<any>): Promise<void>;
}
