import { Message, SQSClient, MessageSystemAttributeName } from "@aws-sdk/client-sqs";
import { Consumer } from "../../consumer";
export interface SQSConfig {
    client: SQSClient;
    mainQueueUrl: string;
    deadQueueUrl?: string;
    WaitTimeSeconds: number;
    VisibilityTimeout: number;
    MaxNumberOfMessages: number;
    MessageAttributeNames?: string[];
    MessageSystemAttributeNames?: MessageSystemAttributeName[];
}
export declare class SQSConsumer extends Consumer<Message> {
    private readonly sqsConfig;
    constructor(sqsConfig: SQSConfig, continuouslyPolling?: boolean);
    protected getMessages(): Promise<Message[]>;
    protected deleteMessages(messages: Message[]): Promise<void>;
    protected markAsDeadMessages(messages: Message[]): Promise<void>;
}
