import { VerificationResponse, BankAccountVerificationRequest as BaseBankAccountVerificationRequest } from '../verification-adapter.interface'; // Re-export the base type export type BankAccountVerificationRequest = BaseBankAccountVerificationRequest; // Advanced bank account verification export interface BankAccountAdvanceVerificationRequest extends BankAccountVerificationRequest { includeBalance?: boolean; } // Bank account comparison with name export interface BankAccountComparisonRequest { accountNumber: string; bankCode: string; firstName: string; lastName: string; } // Standard bank account verification data structure export interface BankAccountVerificationData { accountNumber: string; accountName: string; bankCode: string; bankName?: string; accountType?: string; balance?: number; currency?: string; [key: string]: any; } // Bank code data structure export interface BankCode { code: string; name: string; } /** * Interface for Bank Account verification services * Implementations should throw NotImplementedException for unsupported methods */ export interface IBankAccountVerificationService { /** * Basic bank account verification - REQUIRED */ verifyBankAccount(data: BankAccountVerificationRequest): Promise>; /** * Advanced bank account verification with balance - OPTIONAL */ verifyBankAccountAdvance?(data: BankAccountAdvanceVerificationRequest): Promise>; /** * Compare bank account details with provided names - OPTIONAL */ compareBankAccount?(data: BankAccountComparisonRequest): Promise>; /** * Get list of supported bank codes - OPTIONAL */ listBankCodes?(): Promise>; /** * Check if the service is ready and configured */ isReady(): boolean; }