import { Task } from './'; import { AwsCredentialConfig } from './clients/aws'; import { SNSClient } from './clients/sns'; import { SQSClient, SQSQueueConfig } from './clients/sqs'; import { Logger } from './logger'; export interface SQSTaskConfig { queueName: string; sqsConfig: SQSQueueConfig; awsCredentials: AwsCredentialConfig; baseRetryIntervalSec?: number; maxRetryIntervalSec?: number; log?: Logger; taskLog?: Logger; } export declare abstract class SQSConsumerTask implements Task { private config; private readonly sqsClient; private readonly log; constructor(config: SQSTaskConfig); execute(): Promise; protected abstract handleMessage(message: Object): Promise; protected getSqsClient(): SQSClient; subscribeToTopic(snsClient: SNSClient, topicName: string): Promise; private backoff; isReady(): boolean; }