export interface GatewayResult { success: boolean; providerRef: string; clientAction?: { type: string; url?: string }; } export async function telebirrAdapter( _a: number, ref: string, ): Promise { await new Promise((r) => setTimeout(r, 200)); return { success: true, providerRef: `TB-${ref}-${Date.now()}`, clientAction: { type: "REDIRECT", url: `https://telebirr.sandbox.com/pay/${ref}`, }, }; } export async function cbeBirrAdapter( _a: number, ref: string, ): Promise { await new Promise((r) => setTimeout(r, 150)); return { success: true, providerRef: `CBE-${ref}-${Date.now()}` }; } export async function eBirrAdapter( _a: number, ref: string, ): Promise { await new Promise((r) => setTimeout(r, 150)); return { success: true, providerRef: `EB-${ref}-${Date.now()}` }; } export async function cardAdapter( _a: number, ref: string, ): Promise { await new Promise((r) => setTimeout(r, 150)); return { success: !ref.startsWith("FAIL"), providerRef: `CARD-${ref}-${Date.now()}`, }; } export async function walletAdapter( amount: number, balance: number, ): Promise { return { success: balance >= amount, providerRef: `WALLET-${Date.now()}` }; }