meta-cloud-api
Version:
TypeScript wrapper for Meta's Cloud API
176 lines (172 loc) • 5.23 kB
TypeScript
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 };