import { BaseEsmsService } from './base.service'; import type { ZaloSendResponse, GetListZOAResponse, ZaloQuotaResponse, ZaloRatingResponse, ZaloFollowerResponse, EsmsBaseResponse, GetZaloTemplateRequest, GetZaloTemplateResponse } from '../types'; /** * Zalo Service - handles all Zalo ZNS operations */ export declare class ZaloService extends BaseEsmsService { private readonly endpoints; /** * Send Zalo message V6 * @param credentials Optional credentials, will use default from constructor if not provided */ sendZaloV6(request: { OAID: string; Phone: string; TempID: string; TempData: Record; SendingMode?: '1' | '2'; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Send Zalo message V6 with hash phone * @param credentials Optional credentials, will use default from constructor if not provided */ sendZaloV6HashPhone(request: { OAID: string; HashPhone: string; TempID: string; TempData: Record; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Send Zalo message V4 * @param credentials Optional credentials, will use default from constructor if not provided */ sendZaloV4(request: { OAID: string; Phone: string; TempID: string; TempData: Record; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Send Zalo follower message V4 * @param credentials Optional credentials, will use default from constructor if not provided */ sendZaloFollowerV4(request: { OAID: string; Phones: string[]; TempID: string; TempData: Record; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Send Zalo follower message V5 * @param credentials Optional credentials, will use default from constructor if not provided */ sendZaloFollowerV5(request: { OAID: string; Phones: string[]; TempID: string; TempData: Record; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Send bulk Zalo messages V4 * @param credentials Optional credentials, will use default from constructor if not provided */ sendZnsBulkV4(request: { OAID: string; Messages: Array<{ Phone: string; TempID: string; TempData: Record; }>; campaignid?: string; RequestId?: string; CallbackUrl?: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get list of Zalo OAs * @param credentials Optional credentials, will use default from constructor if not provided */ getListZOA(credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get Zalo template list for OA * @param credentials Optional credentials, will use default from constructor if not provided */ getZaloTemplateList(request: GetZaloTemplateRequest, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get Zalo quota * @param credentials Optional credentials, will use default from constructor if not provided */ getZaloQuota(params: { OAID: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get Zalo rating * @param credentials Optional credentials, will use default from constructor if not provided */ getZaloRating(params: { OAID: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get Zalo quality * @param credentials Optional credentials, will use default from constructor if not provided */ getZaloQuality(params: { OAID: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get Zalo followers * @param credentials Optional credentials, will use default from constructor if not provided */ getZaloFollowers(params: { OAID: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Get ZNS template info * @param credentials Optional credentials, will use default from constructor if not provided */ getZnsTemplateInfo(params: { TemplateId: string | number; OAId: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise<{ CodeResponse: string; ErrorMessage?: string; Data: { TemplateId: string; TemplateName: string; Content: string; Status: string; Price: number; }; }>; /** * Summary Zalo message V4 * @param credentials Optional credentials, will use default from constructor if not provided */ summaryZaloMessageV4(request: { OAID: string; Phone: string; TempID: string; TempData: Record; }, credentials?: { apiKey: string; secretKey: string; }): Promise<{ CodeResponse: string; ErrorMessage?: string; TotalPrice: number; TotalSMS: number; }>; /** * Register OA package * @param credentials Optional credentials, will use default from constructor if not provided */ regisOAPackage(request: { Dateactive: string; Duaration: string; OAID: string; Package: number; }, credentials?: { apiKey: string; secretKey: string; }): Promise; /** * Register ZNS template * @param credentials Optional credentials, will use default from constructor if not provided */ regisZNSTemplate(request: { OAID: string; TemplateName: string; TemplateContent: string; TemplateType: string; }, credentials?: { apiKey: string; secretKey: string; }): Promise; }