import { whatsappTriggerDefinitions as triggerDefinitions } from "@automate.ax/catalog/triggers/whatsapp" import { createTrigger } from "../../automation/create-trigger" import type { IntegrationAccountReference } from "../../automation/integrations" /** Account selection shared by WhatsApp webhook subscriptions. */ export interface WhatsAppTriggerOptions { /** WhatsApp Business phone-number account to watch. */ account?: string | IntegrationAccountReference<"whatsapp"> } /** * Subscribes to messages received by the selected WhatsApp number. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageReceived = createTrigger( triggerDefinitions.whatsappMessageReceived, ) /** * Subscribes to sent, delivered, read, failed, and played status changes. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageStatusEvent = createTrigger( triggerDefinitions.whatsappMessageStatusEvent, ) /** * Subscribes to messages accepted for sending by WhatsApp. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageSent = createTrigger( triggerDefinitions.whatsappMessageSent, ) /** * Subscribes to messages delivered to recipient devices. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageDelivered = createTrigger( triggerDefinitions.whatsappMessageDelivered, ) /** * Subscribes to messages read by recipients. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageRead = createTrigger( triggerDefinitions.whatsappMessageRead, ) /** * Subscribes to failed WhatsApp message deliveries. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessageFailed = createTrigger( triggerDefinitions.whatsappMessageFailed, ) /** * Subscribes to played WhatsApp audio messages. * * @param options - Static WhatsApp account selection. */ export const onWhatsAppMessagePlayed = createTrigger( triggerDefinitions.whatsappMessagePlayed, )