import { Client } from '@vonage/server-client'; import { VetchOptions } from '@vonage/vetch'; import { AnyChannel, MessageWithFailover } from './types/Channels/index.js'; import { UpdateMessageStatus } from './enums/UpdateMessageStatus.js'; import { MessageSuccess } from './types/MessageSuccess.js'; import { SendMessageParams } from './types/SendMessageParams.js'; import { UpdateMessageParams } from './types/UpdateMessageParams.js'; import './types/Channels/Messenger/index.js'; import './types/Channels/Messenger/MessengerAudioParams.js'; import './types/MessageParamsAudio.js'; import './types/MessageParams.js'; import './enums/Channels.js'; import './enums/MessageTypes.js'; import './types/MessageAudioType.js'; import './types/Channels/Messenger/MessengerParams.js'; import './types/Channels/Messenger/MessengerType.js'; import './enums/Messenger/MessengerCategory.js'; import './types/Channels/Messenger/MessengerFileParams.js'; import './types/MessageFileType.js'; import './types/MessageParamsFile.js'; import './types/Channels/Messenger/MessengerImageParams.js'; import './types/MessageParamsImage.js'; import './types/MessageImageType.js'; import './types/Channels/Messenger/MessengerTextParams.js'; import './types/MessageParamsText.js'; import './types/Channels/Messenger/MessengerVideoParams.js'; import './types/MessageParamsVideo.js'; import './types/MessageVideoType.js'; import './types/Channels/MMS/index.js'; import './types/Channels/MMS/MMSAudioParams.js'; import './types/Channels/MMS/MMSParams.js'; import './types/Channels/MMS/MMSImageParams.js'; import './types/Channels/MMS/MMSVcardParams.js'; import './types/MessageVcardType.js'; import './types/Channels/MMS/MMSVideoParams.js'; import './types/Channels/Viber/index.js'; import './types/Channels/Viber/ViberAction.js'; import './types/Channels/Viber/ViberActionParams.js'; import './types/Channels/Viber/ViberService.js'; import './enums/Viber/ViberCategory.js'; import './types/Channels/Viber/ViberFileParams.js'; import './types/Channels/Viber/ViberParams.js'; import './types/Channels/Viber/ViberImageParams.js'; import './types/Channels/Viber/ViberTextParams.js'; import './types/Channels/Viber/ViberVideoParams.js'; import './types/Channels/WhatsApp/index.js'; import './types/Channels/WhatsApp/WhatsAppAudioParams.js'; import './types/Channels/WhatsApp/WhatsAppParams.js'; import './types/Channels/WhatsApp/WhatsAppCustomParams.js'; import './types/Channels/WhatsApp/WhatsAppCustomType.js'; import './types/Channels/WhatsApp/WhatsAppFileParams.js'; import './types/Channels/WhatsApp/WhatsAppImageParams.js'; import './types/Channels/WhatsApp/WhatsAppStickerIdType.js'; import './types/Channels/WhatsApp/WhatsAppStickerParams.js'; import './types/Channels/WhatsApp/WhatsAppStickerUrlType.js'; import './types/Channels/WhatsApp/WhatsAppTemplateParams.js'; import './types/Channels/WhatsApp/WhatsAppTemplateType.js'; import './types/Channels/WhatsApp/WhatsAppPolicyType.js'; import './enums/WhatsApp/WhatsAppLanguageCodes.js'; import './types/Channels/WhatsApp/WhatsAppTextParams.js'; import './types/Channels/WhatsApp/WhatsAppVideoParams.js'; import './types/Channels/WhatsApp/WhatsAppReactionParams.js'; import './types/Channels/WhatsApp/WhatAppReactionType.js'; import './types/Channels/SMSParams.js'; import './types/Channels/RCS/index.js'; import './types/Channels/RCS/RCSCustomParams.js'; import './types/Channels/RCS/RCSParams.js'; import './enums/RCS/RCSCategory.js'; import './types/Channels/RCS/RCSFileParams.js'; import './types/Channels/RCS/RCSImageParams.js'; import './types/Channels/RCS/RCSTextParams.js'; import './types/Channels/RCS/Suggestions/index.js'; import './types/Channels/RCS/Suggestions/RCSCreateCalendarEventSuggestionParams.js'; import './enums/RCS/RCSSuggestionType.js'; import './types/Channels/RCS/Suggestions/RCSSuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSDialActionSuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSOpenURLSuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSOpenURLWebviewSuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSReplySuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSShareLocationSuggestionParams.js'; import './types/Channels/RCS/Suggestions/RCSViewLocationSuggestionParams.js'; import './types/Channels/RCS/RCSVideoParams.js'; /** * Client class to interact with the Messages API which enables users to manage * send messages through various channels programmatically. * @see {@link https://developer.nexmo.com/en/messages/overview} * @group Client * * @example * Create a standalone Messages client * * ```ts * import { Messages } from '@vonage/messages'; * * const messagesClient = new Messages({ * apiKey: VONAGE_API_KEY, * apiSecret: VONAGE_API_SECRET * }); * ``` * * @example * Create an Messages client from the Vonage client * * ```ts * import { Vonage } from '@vonage/server-client'; * * const vonage = new Vonage({ * apiKey: VONAGE_API_KEY, * apiSecret: VONAGE_API_SECRET * }); * * const messagesClient = vonage.messages; * ``` */ declare class Messages extends Client { /** * Adds authentication details to the given request based on the configured * authentication type. Handle various ways the Messages API handles auth * The Messages API handles both JWT (preferred) as well as Basic so we * cannot just set a local authType * * @param {VetchOptions} request - The request to which authentication should be added. * @return {Promise} A promise that resolves to the request with added authentication. */ addAuthenticationToRequest(request: VetchOptions): Promise; /** * Sends a message using the Vonage API. * * @param {SendMessageParams} message - The message to be sent. * @return {Promise} A promise that resolves to a success response with a message UUID. */ send(message: SendMessageParams | AnyChannel | MessageWithFailover): Promise; /** * Update the status of outbound and/or inbound messages for certain * channels. For example, you can revoke outbound messages or mark inbound * messages as read. * * Please not that this endpoint is region specifc. You will need to set the * region when you create the client. * * @example * Update the status of a WhatsApp message to "read" * ```ts * const vonage = new Vonage( * { * applicationId: myAppId, * privateKey: myPrivateKey * }, * ) * * await vonage.messages.updateMessage(messageId, UpdateMessageStatus.READ); * ``` * * @param {string} messageId - The ID of the message to update. * @param {UpdateMessageStatus | string} status - The status to update the message to. * * @return {Promise} A promise that resolves to true if the message was * updated successfully. */ updateMessage(messageId: string, status: UpdateMessageStatus | string, params: UpdateMessageParams): Promise; } export { Messages };