import { Message, Replies, Options } from 'amqplib';
import { RabbitmqClient } from './RabbitmqClient';
import { RabbitmqConsumerConfig, RabbitmqClientConfig } from './RabbitmqConfig';
import { RabbitmqConsumerHandler } from './RabbitmqConsumerHandler';
export declare class RabbitmqConsumer extends RabbitmqClient {
    protected consumerConfig: RabbitmqConsumerConfig;
    protected messageHandler: RabbitmqConsumerHandler;
    constructor(clientConfig: RabbitmqClientConfig, name: string, consumerConfig: any, handler: RabbitmqConsumerHandler);
    init(): Promise<void>;
    /**
     * Subscribe to a queue
     */
    subscribe(queueName: string, consumeOptions?: Options.Consume): Promise<Replies.Consume>;
    handleMessage(message: Message): Promise<void>;
    /**
     *
     * @param retriesCount number
     * @reutrn number in milliseconds
     */
    getTtl(retriesCount?: number): number;
    allowRetry(retriesCount: number): boolean;
    close(): Promise<void>;
}
