UNPKG

meta-cloud-api

Version:
172 lines (169 loc) 7.82 kB
import { B as BaseAPI } from './base-CdGDdVEl.js'; import { WabaConfigType } from './types/config.js'; import { M as MessageTypesEnum, C as ComponentTypesEnum, I as InteractiveTypesEnum } from './enums-BZd9T2ul.js'; import { R as RequesterClass } from './request-vYMaEfk5.js'; import { f as MessagesClass, A as AudioMediaObject, C as ContactObject, D as DocumentMediaObject, I as ImageMediaObject, a as InteractiveObject, L as LocationObject, c as MessageTemplateObject, d as StickerMediaObject, e as TextObject, V as VideoMediaObject, g as MessageRequestBody, M as MessageRequestParams, b as MessagesResponse, T as TextMessageParams, S as StatusParams, R as ReactionParams } from './common-BiRA_uz3.js'; /** * Maps each message type to its appropriate payload type */ type MessagePayloadType<T extends MessageTypesEnum> = T extends MessageTypesEnum.Audio ? AudioMediaObject : T extends MessageTypesEnum.Contacts ? [ContactObject] : T extends MessageTypesEnum.Document ? DocumentMediaObject : T extends MessageTypesEnum.Image ? ImageMediaObject : T extends MessageTypesEnum.Interactive ? InteractiveObject : T extends MessageTypesEnum.Location ? LocationObject : T extends MessageTypesEnum.Template ? MessageTemplateObject<ComponentTypesEnum> : T extends MessageTypesEnum.Sticker ? StickerMediaObject : T extends MessageTypesEnum.Text ? TextObject : T extends MessageTypesEnum.Video ? VideoMediaObject : T extends MessageTypesEnum.Reaction ? { message_id: string; emoji: string; } : never; declare class MessagesApi extends BaseAPI implements MessagesClass { private readonly commonMethod; private readonly commonEndpoint; constructor(config: WabaConfigType, client: RequesterClass); /** * Builds the request body for WhatsApp API messages * @param type The type of message to send * @param payload The message payload object * @param to The recipient's phone number * @param replyMessageId Optional message ID to reply to * @returns The formatted request body */ bodyBuilder<T extends MessageTypesEnum>(type: T, payload: MessagePayloadType<T>, to: string, replyMessageId?: string): MessageRequestBody<T>; /** * Sends a request to the WhatsApp API * @param body The request body to send * @returns Promise with the API response */ private send; /** * Sends an audio message via WhatsApp * @param params The audio message parameter object * @returns Promise with the message response */ audio(params: MessageRequestParams<AudioMediaObject>): Promise<MessagesResponse>; /** * Sends a contact card via WhatsApp * @param params The contact message parameter object * @returns Promise with the message response */ contacts(params: MessageRequestParams<[ContactObject]>): Promise<MessagesResponse>; /** * Sends a document via WhatsApp * @param params The document message parameter object * @returns Promise with the message response */ document(params: MessageRequestParams<DocumentMediaObject>): Promise<MessagesResponse>; /** * Sends an image via WhatsApp * @param params The image message parameter object * @returns Promise with the message response */ image(params: MessageRequestParams<ImageMediaObject>): Promise<MessagesResponse>; /** * Sends an interactive message via WhatsApp * @param params The interactive message parameter object * @returns Promise with the message response */ interactive(params: MessageRequestParams<InteractiveObject>): Promise<MessagesResponse>; /** * Sends a location via WhatsApp * @param params The location message parameter object * @returns Promise with the message response */ location(params: MessageRequestParams<LocationObject>): Promise<MessagesResponse>; /** * Sends a sticker via WhatsApp * @param params The sticker message parameter object * @returns Promise with the message response */ sticker(params: MessageRequestParams<StickerMediaObject>): Promise<MessagesResponse>; /** * Sends a template message via WhatsApp * @param params The template message parameter object * @returns Promise with the message response */ template(params: MessageRequestParams<MessageTemplateObject<ComponentTypesEnum>>): Promise<MessagesResponse>; /** * Sends a text message via WhatsApp * @param params The text message parameter object * @returns Promise with the message response */ text(params: TextMessageParams): Promise<MessagesResponse>; /** * Sends a video message via WhatsApp * @param params The video message parameter object * @returns Promise with the message response */ video(params: MessageRequestParams<VideoMediaObject>): Promise<MessagesResponse>; /** * Updates message status (mark as read, etc.) * @param params The status update parameters * @returns Promise with the API response */ status(params: StatusParams): Promise<MessagesResponse>; /** * Marks a message as read * @param params Object containing messageId * @returns Promise with the API response */ markAsRead(params: { messageId: string; }): Promise<MessagesResponse>; /** * Shows typing indicator * @param params Object containing messageId * @returns Promise with the API response */ showTypingIndicator(params: { messageId: string; }): Promise<MessagesResponse>; /** * Sends a list interactive message * @param params The list interactive message parameters * @returns Promise with the message response */ interactiveList(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.List; }>): Promise<MessagesResponse>; /** * Sends a CTA URL interactive message * @param params The CTA URL interactive message parameters * @returns Promise with the message response */ interactiveCtaUrl(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.CtaUrl; }>): Promise<MessagesResponse>; /** * Sends a location request interactive message * @param params The location request interactive message parameters * @returns Promise with the message response */ interactiveLocationRequest(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.LocationRequest; }>): Promise<MessagesResponse>; /** * Sends an address message interactive message * @param params The address message interactive message parameters * @returns Promise with the message response */ interactiveAddressMessage(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.AddressMessage; }>): Promise<MessagesResponse>; /** * Sends a reply buttons interactive message * @param params The reply buttons interactive message parameters * @returns Promise with the message response */ interactiveReplyButtons(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.Button; }>): Promise<MessagesResponse>; /** * Sends a flow interactive message * @param params The flow interactive message parameters * @returns Promise with the message response */ interactiveFlow(params: MessageRequestParams<InteractiveObject & { type: InteractiveTypesEnum.Flow; }>): Promise<MessagesResponse>; /** * Sends a reaction to a message * @param params The reaction parameters * @returns Promise with the message response */ reaction(params: ReactionParams): Promise<MessagesResponse>; } export { MessagesApi as M };