import { AbstractMessage } from '../AbstractMessage';
import { WhatsAppTemplateParams, WhatsAppPolicyType, WhatsAppTemplateType, WhatsAppContext } from '../../types';
/**
 * Represents a template message for WhatsApp.
 *
 * @group WhatsApp
 */
export declare class WhatsAppTemplate extends AbstractMessage implements WhatsAppTemplateParams {
    channel: 'whatsapp';
    messageType: 'template';
    whatsapp: WhatsAppPolicyType;
    template: WhatsAppTemplateType;
    context?: WhatsAppContext;
    /**
     * 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: WhatsAppTemplateParams);
}
//# sourceMappingURL=WhatsAppTemplate.d.ts.map