import { DeleteMessageBatchCommandOutput, DeleteMessageBatchRequestEntry, DeleteMessageCommandOutput, ReceiveMessageCommandInput, ReceiveMessageCommandOutput, SendMessageBatchCommandOutput, SendMessageBatchRequestEntry, SendMessageCommandInput, SendMessageCommandOutput } from '@aws-sdk/client-sqs';
import { SqsClientFactory } from './sqs-client-factory';
export declare class SqsService {
    private readonly sqsClientFactory;
    private readonly logger;
    constructor(sqsClientFactory: SqsClientFactory);
    /**
     * Send a single message to an SQS queue.
     */
    sendMessage(queueUrl: string, body: string, opts?: Pick<SendMessageCommandInput, 'DelaySeconds' | 'MessageGroupId' | 'MessageDeduplicationId' | 'MessageAttributes'>): Promise<SendMessageCommandOutput>;
    /**
     * Send up to 10 messages to an SQS queue in a single API call.
     * Caller is responsible for ensuring entries.length <= 10.
     */
    sendMessageBatch(queueUrl: string, entries: SendMessageBatchRequestEntry[]): Promise<SendMessageBatchCommandOutput>;
    /**
     * Receive messages from an SQS queue.
     */
    receiveMessages(queueUrl: string, opts?: Partial<Pick<ReceiveMessageCommandInput, 'MaxNumberOfMessages' | 'WaitTimeSeconds' | 'VisibilityTimeout' | 'MessageSystemAttributeNames' | 'MessageAttributeNames'>>): Promise<ReceiveMessageCommandOutput>;
    /**
     * Delete a single message from an SQS queue (acknowledge processing).
     */
    deleteMessage(queueUrl: string, receiptHandle: string): Promise<DeleteMessageCommandOutput>;
    /**
     * Delete up to 10 messages from an SQS queue in a single API call.
     */
    deleteMessageBatch(queueUrl: string, entries: DeleteMessageBatchRequestEntry[]): Promise<DeleteMessageBatchCommandOutput>;
}
