import type { ConfirmRequest, CancelRequest, PaymentResult, CancelResult, } from "./payment.ts"; export interface PgClient { name(): string; confirmPayment( ctx: AbortSignal | null, req: ConfirmRequest, ): Promise; cancelPayment( ctx: AbortSignal | null, req: CancelRequest, ): Promise; getPayment( ctx: AbortSignal | null, paymentKey: string, ): Promise; verifyWebhook( ctx: AbortSignal | null, payload: Buffer, signature: string, ): Promise; } export interface PgQuerier { createOrder(data: Record): Promise; getOrderById(orderId: string): Promise | null>; getOrderBySeq(seq: number): Promise | null>; updateOrder( seq: number, expectedStatus: string, patch: Record, ): Promise; updateOrderDirect( seq: number, patch: Record, ): Promise; createCancel(data: Record): Promise; createWebhookLog(data: Record): Promise; updateWebhookLog( seq: number, patch: Record, ): Promise; findWebhookLog( paymentKey: string, eventType: string, ): Promise | null>; }