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