/** * @module * Meta WhatsApp Cloud API transport. * * Sently-first: wire into {@link createWhatsAppSender}. Other WhatsApp providers * (e.g. `TaqnyatWhatsAppTransport`) are separate transports with the same contract. * * @example * ```ts * import { createWhatsAppSender } from "sently/whatsapp"; * import { WhatsAppCloudTransport } from "sently/transports/whatsapp-cloud"; * * const wa = createWhatsAppSender({ * transport: new WhatsAppCloudTransport({ * accessToken: process.env.WHATSAPP_TOKEN!, * phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID!, * }), * }); * ``` */ import { SentlyError } from "../core/errors.js"; import type { VerifyResult } from "../core/types.js"; import type { WhatsAppOptions, WhatsAppSendResult, WhatsAppTransport } from "../core/whatsapp-types.js"; /** Default Graph API version (current as of 2026-08). */ export declare const WHATSAPP_CLOUD_DEFAULT_API_VERSION = "v26.0"; /** WhatsApp Cloud API configuration. */ export interface WhatsAppCloudConfig { /** Meta Graph API access token. */ accessToken: string; /** WhatsApp Business phone number ID. */ phoneNumberId: string; /** Graph API version (e.g. `"v26.0"`). Default: {@link WHATSAPP_CLOUD_DEFAULT_API_VERSION}. */ apiVersion?: string; } /** Error thrown when the WhatsApp Cloud API returns a non-success response. */ export declare class WhatsAppCloudError extends SentlyError { readonly statusCode: number; readonly apiError: unknown; /** Creates a WhatsApp Cloud API error with status code and response payload. */ constructor(message: string, statusCode: number, apiError: unknown); } /** * WhatsApp Cloud API transport (JSON Bearer). */ export declare class WhatsAppCloudTransport implements WhatsAppTransport { readonly provider = "whatsapp-cloud"; private readonly accessToken; private readonly phoneNumberId; private readonly apiVersion; /** Creates a WhatsApp Cloud API transport. */ constructor(config: WhatsAppCloudConfig); /** Sends a WhatsApp template or text message. */ send(options: WhatsAppOptions): Promise; /** Lightweight credential check. */ verify(): Promise; }