import { PublishCommandOutput } from '@aws-sdk/client-sns'; /** * Represents the configuration options for a publisher. * @typedef {Object} PublisherConfig * @property {string} [region] - The region where the publisher is located. */ export type PublisherConfig = { region?: string; }; /** * Represents a publisher that can publish messages to an SNS topic. */ export default class Publisher { /** * The region of the object or entity. * @private * @type {string} */ private region; /** * Constructs a new instance of the Publisher class. * @param {PublisherConfig} [config] - The configuration object for the Publisher. * @returns None */ constructor(config?: PublisherConfig); /** * Publishes a message on a specified topic. * @param {any} messageObject - The message object to be published. * @param {string} topic - The ARN of the topic to publish the message to. * @param {object} [additionalProps] - Additional properties to include in the publish command. * @returns {Promise} - A promise that resolves to the response from the publish command. */ publishOnTopic(messageObject: any, topic: string, additionalProps?: object): Promise; /** * Publishes a message on a specified topic. * @param {string} message - The SMS message to publish. * @param {string} phone - The phone number to publish the message to. * @returns {Promise} - A promise that resolves to the response from the publish command. */ publishSMS(message: string, phone: string): Promise; /** * Establishes a connection to the SNS client if it does not already exist or if the region has changed. * @returns None */ private connect; }