UNPKG

meta-cloud-api

Version:
176 lines (172 loc) 5.23 kB
import { B as BaseAPI } from './base-CdGDdVEl.js'; import { WabaConfigType } from './types/config.js'; import { e as ResponseSuccess, R as RequesterClass } from './request-vYMaEfk5.js'; /** * WhatsApp Business Account subscription configuration */ type WabaSubscription = { whatsapp_business_api_data: { id: string; link: string; name: string; category: string; }; override_callback_uri?: string; }; /** * Parameters for updating WABA subscription */ interface UpdateWabaSubscription { override_callback_uri: string; verify_token: string; } /** * Response containing all WABA subscriptions */ interface WabaSubscriptions { data: Array<WabaSubscription>; } /** * WABA account review status enumeration */ declare enum WabaAccountReviewStatus { Approved = "APPROVED", Active = "ACTIVE", Inactive = "INACTIVE", Disabled = "DISABLED" } /** * WABA health status for message sending capability */ declare enum WabaHealthStatusCanSendMessage { Blocked = "BLOCKED", Limited = "LIMITED", Available = "AVAILABLE" } /** * WABA account status enumeration */ declare enum WabaAccountStatus { Approved = "APPROVED", Active = "ACTIVE", Inactive = "INACTIVE", Disabled = "DISABLED" } /** * Business verification status enumeration */ declare enum WabaBusinessVerificationStatus { Verified = "verified", PendingSubmission = "pending_submission", Unverified = "unverified", Rejected = "rejected" } /** * WABA health status error details */ interface WabaHealthStatusError { error_code?: number; error_description?: string; possible_solution?: string; } /** * WABA health status entity information */ interface WabaHealthStatusEntity { entity_type?: string; id?: string; can_send_message?: string; errors?: WabaHealthStatusError[]; } /** * Overall WABA health status */ interface WabaHealthStatus { can_send_message?: WabaHealthStatusCanSendMessage; entities?: WabaHealthStatusEntity[]; } /** * WhatsApp Business Account information */ interface WabaAccount { account_review_status?: WabaAccountReviewStatus; id?: string; health_status?: WabaHealthStatus; status?: WabaAccountStatus; business_verification_status?: WabaBusinessVerificationStatus; message_template_namespace?: string; name?: string; ownership_type?: string; currency?: string; } /** * Available fields for WABA account queries */ type WabaAccountFields = 'id' | 'name' | 'account_review_status' | 'auth_international_rate_eligibility' | 'business_verification_status' | 'country' | 'currency' | 'health_status' | 'status' | 'ownership_type' | 'message_template_namespace'; /** * Parameter type for specifying which WABA account fields to retrieve */ type WabaAccountFieldsParam = WabaAccountFields[]; /** * Interface defining all WABA API methods */ interface WABAClass { getWabaAccount(fields?: WabaAccountFieldsParam): Promise<WabaAccount>; getAllWabaSubscriptions(): Promise<WabaSubscriptions>; updateWabaSubscription(params: UpdateWabaSubscription): Promise<ResponseSuccess>; unsubscribeFromWaba(): Promise<ResponseSuccess>; } /** * API for managing WhatsApp Business Account (WABA). * * This API allows you to: * - Get WABA account information * - Manage WABA subscriptions * - Subscribe/unsubscribe from WABA webhooks * - Update subscription settings */ declare class WabaApi extends BaseAPI implements WABAClass { constructor(config: WabaConfigType, client: RequesterClass); /** * Retrieve WhatsApp Business Account information. * * @param fields Optional array of specific fields to retrieve * @returns WABA account information including status, health, verification status, etc. * * @example * const account = await whatsappClient.waba.getWabaAccount(['id', 'name', 'status']); */ getWabaAccount(fields?: WabaAccountFieldsParam): Promise<WabaAccount>; /** * Get all WABA subscriptions for the business account. * * @returns List of all subscribed apps and their configurations * * @example * const subscriptions = await whatsappClient.waba.getAllWabaSubscriptions(); */ getAllWabaSubscriptions(): Promise<WabaSubscriptions>; /** * Update WABA subscription configuration. * * @param params Configuration parameters including callback URI and verify token * @returns Response indicating success or failure * * @example * await whatsappClient.waba.updateWabaSubscription({ * override_callback_uri: 'https://example.com/webhook', * verify_token: 'your_verify_token' * }); */ updateWabaSubscription({ override_callback_uri, verify_token, }: UpdateWabaSubscription): Promise<ResponseSuccess>; /** * Unsubscribe from WABA webhooks. * * @returns Response indicating success or failure * * @example * await whatsappClient.waba.unsubscribeFromWaba(); */ unsubscribeFromWaba(): Promise<ResponseSuccess>; } export { type UpdateWabaSubscription as U, WabaApi as W, type WabaAccount as a, type WABAClass as b, type WabaSubscriptions as c };