import type { ZaloEventMessage, ZaloSendOptions, ZaloSendResult } from "./types.js"; import { sendZaloDeliveredEvent, sendZaloLink, sendZaloReaction, sendZaloSeenEvent, sendZaloTextMessage, sendZaloTypingEvent, } from "./zalo-js.js"; export type ZalouserSendOptions = ZaloSendOptions; export type ZalouserSendResult = ZaloSendResult; export async function sendMessageZalouser( threadId: string, text: string, options: ZalouserSendOptions = {}, ): Promise { return await sendZaloTextMessage(threadId, text, options); } export async function sendImageZalouser( threadId: string, imageUrl: string, options: ZalouserSendOptions = {}, ): Promise { return await sendZaloTextMessage(threadId, options.caption ?? "", { ...options, mediaUrl: imageUrl, }); } export async function sendLinkZalouser( threadId: string, url: string, options: ZalouserSendOptions = {}, ): Promise { return await sendZaloLink(threadId, url, options); } export async function sendTypingZalouser( threadId: string, options: Pick = {}, ): Promise { await sendZaloTypingEvent(threadId, options); } export async function sendReactionZalouser(params: { threadId: string; msgId: string; cliMsgId: string; emoji: string; remove?: boolean; profile?: string; isGroup?: boolean; }): Promise { const result = await sendZaloReaction({ profile: params.profile, threadId: params.threadId, isGroup: params.isGroup, msgId: params.msgId, cliMsgId: params.cliMsgId, emoji: params.emoji, remove: params.remove, }); return { ok: result.ok, error: result.error, }; } export async function sendDeliveredZalouser(params: { profile?: string; isGroup?: boolean; message: ZaloEventMessage; isSeen?: boolean; }): Promise { await sendZaloDeliveredEvent(params); } export async function sendSeenZalouser(params: { profile?: string; isGroup?: boolean; message: ZaloEventMessage; }): Promise { await sendZaloSeenEvent(params); }