import { BatchResultErrorEntry, DeleteMessageCommandInput, MessageAttributeValue, ReceiveMessageCommandOutput, SendMessageBatchRequestEntry, SendMessageBatchResultEntry, SQSClientConfig } from '@aws-sdk/client-sqs'; import { Logger } from 'winston'; export interface ISQS { clientConfig?: SQSClientConfig; logger?: Logger; } export type TGetQueueUrl = (queueName: string) => Promise; export type TSendMessage = (queueUrl: string, message: string, fifoSettings?: { MessageDeduplicationId?: string; MessageGroupId: string; }, messageAttributes?: Record, messageDelay?: number) => Promise; export type TGetQueueItems = (queueUrl: string, maxNumberOfMessages?: number) => Promise; export type TDeleteQueueItem = (queueUrl: string, receiptHandle: DeleteMessageCommandInput['ReceiptHandle']) => Promise; export type TSendBatchMessages = (queueUrl: string, queueEntries: SendMessageBatchRequestEntry[]) => Promise<{ failed: BatchResultErrorEntry[] | undefined; successful: SendMessageBatchResultEntry[] | undefined; }>; export interface ISQSInstance { deleteQueueItem: TDeleteQueueItem; getQueueItems: TGetQueueItems; getQueueUrl: TGetQueueUrl; sendBatchMessages: TSendBatchMessages; sendMessage: TSendMessage; } declare const sqs: (userConfig: ISQS) => ISQSInstance; export default sqs;