import { AbstractMessage } from '../AbstractMessage.js'; import { Channels } from '../../enums/Channels.js'; import { MessageTypes } from '../../enums/MessageTypes.js'; import { WhatsAppContext } from '../../types/Channels/WhatsApp/WhatsAppParams.js'; import { WhatsAppTemplateParams } from '../../types/Channels/WhatsApp/WhatsAppTemplateParams.js'; import { WhatsAppPolicyType } from '../../types/Channels/WhatsApp/WhatsAppPolicyType.js'; import { WhatsAppTemplateType } from '../../types/Channels/WhatsApp/WhatsAppTemplateType.js'; import '../../types/MessageParams.js'; import '../../enums/WhatsApp/WhatsAppLanguageCodes.js'; /** * Represents a template message for WhatsApp. * * @group WhatsApp */ declare class WhatsAppTemplate extends AbstractMessage implements WhatsAppTemplateParams { /** * The channel for this message (always 'whatsapp'). */ channel: Channels.WHATSAPP; /** * The type of message (always 'template'). */ messageType: MessageTypes.TEMPLATE; whatsapp: WhatsAppPolicyType; template: WhatsAppTemplateType; context?: WhatsAppContext; /** * Send via MM Lite API only this is valid for marketing template messages * only, and for Alpha release only */ category?: string; /** * Send a template message to a WhatsApp user. * * @param {WhatsAppTemplateParams} params - The parameters for creating a WhatsApp template message. * * @example * ```ts * import { WhatsAppTemplate, WhatsAppLanguageCode } from '@vonage/messages'; * * const { messageUUID } = await messagesClient.send(new WhatsAppTemplate({ * to: TO_NUMBER, * from: FROM_NUMBER, * whatsapp: { * policy: 'deterministic', * locale: WhatsAppLanguageCode.EN, * }, * template: { * name: 'your-template-name', * parameters: [ * 'foo', * 'bar', * ], * }, * clientRef: 'my-personal-reference', * })); * * console.log(`Message sent successfully with UUID ${messageUUID}`); * ``` */ constructor(params: Omit); } export { WhatsAppTemplate };