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