import { type CreateTopicCommandInput, type SNSClient } from '@aws-sdk/client-sns'; import type { STSClient } from '@aws-sdk/client-sts'; import { type Either } from '@lokalise/node-core'; import type { ExtraSNSCreationParams } from '../sns/AbstractSnsService.ts'; type AttributesResult = { attributes?: Record; }; export declare function getTopicAttributes(snsClient: SNSClient, topicArn: string): Promise>; export declare function getSubscriptionAttributes(snsClient: SNSClient, subscriptionArn: string): Promise>; export declare function assertTopic(snsClient: SNSClient, stsClient: STSClient, topicOptions: CreateTopicCommandInput, extraParams?: ExtraSNSCreationParams): Promise; export declare function deleteTopic(snsClient: SNSClient, stsClient: STSClient, topicName: string): Promise; export declare function deleteSubscription(client: SNSClient, subscriptionArn: string): Promise; export declare function findSubscriptionByTopicAndQueue(snsClient: SNSClient, topicArn: string, queueArn: string): Promise; /** * Calculates the size of an outgoing SNS message. * * SNS imposes a 256 KB limit on the total size of a message, which includes both the message body and any metadata (attributes). * This function computes the size based solely on the message body. The reserved buffer for message attributes and overhead * is accounted for in SNS_MESSAGE_ATTRIBUTE_BUFFER, which is subtracted from SNS_MESSAGE_HARD_LIMIT to derive SNS_MESSAGE_MAX_SIZE. * * Reference: https://docs.aws.amazon.com/sns/latest/dg/sns-message-attributes.html * * A wrapper around the equivalent function in the SQS package. */ export declare const calculateOutgoingMessageSize: (message: unknown) => number; /** * Checks if a topic name indicates a FIFO topic (ends with .fifo) */ export declare function isFifoTopicName(topicName: string): boolean; /** * Validates that topic name matches the FIFO configuration flag */ export declare function validateFifoTopicName(topicName: string, isFifoTopic: boolean): void; export {};