import * as SNS from '@aws-sdk/client-sns'; import * as SQS from '@aws-sdk/client-sqs'; import { IncomingEvent, IncomingRequest, IncomingResponse } from '@nestjs/microservices'; import { QueueName, SqsOptions, TopicName } from './sqs.types'; export declare class SQSClient { private readonly logger; private readonly consumers; private readonly sqsQueues; private readonly snsTopics; private readonly options; private sqsClient; private snsClient; constructor(_options: SqsOptions); subscribe({ pattern, queueName, topicName, handler, }: { pattern: string; queueName: QueueName; topicName?: TopicName; handler: (message: IncomingEvent | IncomingRequest | IncomingResponse) => void | Promise; }): Promise; unsubscribe(queueName: QueueName): void; publish(queueName: QueueName, payload: unknown | unknown[]): Promise; emit(topicName: TopicName, payload: unknown | unknown[]): Promise; destroy(): Promise; private deleteQueue; onError(fn: (error: string) => void): void; getAckQueueName(pattern: string): `${string}_ack`; getResQueueName(pattern: string): `${string}_res`; getEventQueueName(pattern: string): string; getEventTopicName(pattern: string): string; private ensureSQSConsumer; private ensureSQSProducer; private createConsumer; private ensureQueue; private isRequestQueue; private isResponseQueue; private getVisibilityTimeoutForQueue; private createQueue; private getQueueUrl; private getQueueAttributes; private subscribeQueueToTopic; private setQueuePolicies; private ensureTopic; private errorHandler; private handleError; private getHandler; private getSQSClient; private getSNSClient; }