import type { AlimtalkRequest, AlimtalkResult, PendingAlimtalkLog, } from "./job.ts"; import type { FriendTalkRequest, FriendTalkResult, PendingFriendTalkLog, } from "./friendtalk.ts"; export interface AlimtalkClient { name(): string; send(req: AlimtalkRequest): Promise; sendFriendTalk(req: FriendTalkRequest): Promise; } export interface AlimtalkQuerier { submitAlimtalkLog(data: Record): Promise; claimPendingAlimtalkLogs(limit: number): Promise; updateAlimtalkLogStatus( logSeq: number, status: string, providerMsgId: string, errMsg: string, ): Promise; resetStaleAlimtalkLogs(): Promise; updateAlimtalkMsgStatus(msgSeq: number, status: string): Promise; updateAlimtalkLogDelivery( providerMsgId: string, status: string, deliveredAt: string, errMsg: string, ): Promise; } export interface FriendTalkQuerier { submitFriendTalkLog(data: Record): Promise; claimPendingFriendTalkLogs(limit: number): Promise; updateFriendTalkLogStatus( logSeq: number, status: string, providerMsgId: string, errMsg: string, ): Promise; resetStaleFriendTalkLogs(): Promise; updateFriendTalkMsgStatus(msgSeq: number, status: string): Promise; }