import type { SNSClient } from '@aws-sdk/client-sns'; import type { STSClient } from '@aws-sdk/client-sts'; import type { SQSConsumerDependencies, SQSConsumerOptions, SQSCreationConfig, SQSMessage, SQSQueueLocatorType } from '@message-queue-toolkit/sqs'; import { AbstractSqsConsumer } from '@message-queue-toolkit/sqs'; import type { SNSSubscriptionOptions } from '../utils/snsSubscriber.ts'; import type { SNSCreationConfig, SNSOptions, SNSTopicLocatorType } from './AbstractSnsService.ts'; export type SNSSQSConsumerDependencies = SQSConsumerDependencies & { snsClient: SNSClient; stsClient: STSClient; }; export type SNSSQSCreationConfig = Omit & SNSCreationConfig; export type SNSSQSQueueLocatorType = Partial & SNSTopicLocatorType & { subscriptionArn?: string; }; export type SNSSQSConsumerOptions = SQSConsumerOptions & SNSOptions & { subscriptionConfig?: SNSSubscriptionOptions; }; export declare abstract class AbstractSnsSqsConsumer extends AbstractSqsConsumer> { private readonly subscriptionConfig?; private readonly snsClient; private readonly stsClient; /** * Tracks whether resources (SNS topic, SQS queue, subscription) are ready. * In non-blocking polling mode, this may be false initially and become true * when the onResourcesReady callback fires. */ private resourcesReady; /** * Tracks whether start() has been called but consumers couldn't be started * because resources weren't ready yet. When resources become ready and this * is true, consumers will be started automatically. */ private startRequested; protected topicArn: string; protected subscriptionArn: string; protected constructor(dependencies: SNSSQSConsumerDependencies, options: SNSSQSConsumerOptions, executionContext: ExecutionContext); init(): Promise; /** * Starts the consumer. In non-blocking polling mode, if resources aren't ready yet, * this method will return immediately and consumers will start automatically once * resources become available. */ start(): Promise; protected resolveMessage(message: SQSMessage): import("@lokalise/node-core").Either; protected resolveSchema(messagePayload: MessagePayloadSchemas): import("@lokalise/node-core").Either>>; }