/** * @deprecated Use specialized verification service interfaces instead * This interface is maintained for backward compatibility */ export interface IVerificationAdapter { verifyNIN(data: any): Promise; verifyBVN(data: any): Promise; verifyVotersCard(data: any): Promise; verifyPassport(data: any): Promise; verifyTIN(data: any): Promise; verifyVehicle(data: any): Promise; verifyCAC(data: any): Promise; verifyPhoneNumber(data: any): Promise; verifyBankAccount(data: any): Promise; verifyCreditBureau(data: any): Promise; isReady(): boolean; } /** * Generic verification response structure * @template T - The type of the verified data * @template M - The type of the adapter-specific metadata/raw response */ export interface VerificationResponse { success: boolean; data?: T; message?: string; error?: string; provider: string; timestamp: Date; meta?: M; // Original adapter-specific response } // Legacy request types - kept for backward compatibility // New code should use the types from specialized verification service interfaces export interface NINVerificationRequest { nin: string; firstName?: string; lastName?: string; dateOfBirth?: string; } export interface BVNVerificationRequest { bvn: string; firstName?: string; lastName?: string; dateOfBirth?: string; } export interface VotersCardVerificationRequest { vin: string; firstName?: string; lastName?: string; state?: string; } export interface PassportVerificationRequest { passportNumber: string; firstName?: string; lastName?: string; dateOfBirth?: string; } export interface TINVerificationRequest { tin: string; channel?: string; } export interface VehicleVerificationRequest { plateNumber: string; } export interface CACVerificationRequest { rcNumber?: string; bnNumber?: string; companyName?: string; } export interface PhoneVerificationRequest { phoneNumber: string; } export interface BankAccountVerificationRequest { accountNumber: string; bankCode: string; } export interface CreditBureauVerificationRequest { bvn?: string; phoneNumber?: string; firstName?: string; lastName?: string; }