import { VerificationResponse } from '../verification-adapter.interface'; // Address verification request export interface AddressVerificationRequest { address: string; state?: string; lga?: string; } // NYSC verification request export interface NYSCVerificationRequest { certificateNumber: string; firstName?: string; lastName?: string; } // Insurance policy verification request export interface InsurancePolicyVerificationRequest { policyNumber: string; } // National ID verification request export interface NationalIDVerificationRequest { nationalIdNumber: string; firstName?: string; lastName?: string; } // WAEC verification request export interface WAECVerificationRequest { examNumber: string; examYear: string; examType?: string; } // Document verification request export interface DocumentVerificationRequest { documentType: string; documentNumber: string; image?: string; // Base64 encoded document image } // Document verification with face matching export interface DocumentWithFaceVerificationRequest extends DocumentVerificationRequest { faceImage: string; // Base64 encoded face image } // Address verification data structure export interface AddressVerificationData { address: string; verified: boolean; state?: string; lga?: string; landmark?: string; [key: string]: any; } // NYSC verification data structure export interface NYSCVerificationData { certificateNumber: string; firstName: string; lastName: string; stateOfService?: string; yearOfService?: string; institution?: string; [key: string]: any; } // Insurance policy verification data structure export interface InsurancePolicyVerificationData { policyNumber: string; policyHolderName?: string; status?: string; expiryDate?: string; issueDate?: string; insuranceCompany?: string; [key: string]: any; } // National ID verification data structure export interface NationalIDVerificationData { nationalIdNumber: string; firstName: string; lastName: string; dateOfBirth?: string; [key: string]: any; } // WAEC verification data structure export interface WAECVerificationData { examNumber: string; examYear: string; candidateName?: string; results?: Array<{ subject: string; grade: string; }>; [key: string]: any; } // Document verification data structure export interface DocumentVerificationData { documentType: string; documentNumber: string; verified: boolean; ownerName?: string; [key: string]: any; } /** * Interface for other miscellaneous verification services * Implementations should throw NotImplementedException for unsupported methods */ export interface IOtherVerificationService { /** * Address verification - OPTIONAL */ verifyAddress?(data: AddressVerificationRequest): Promise>; /** * NYSC (National Youth Service Corps) certificate verification - OPTIONAL */ verifyNYSC?(data: NYSCVerificationRequest): Promise>; /** * Insurance policy verification - OPTIONAL */ verifyInsurancePolicy?(data: InsurancePolicyVerificationRequest): Promise>; /** * National ID verification - OPTIONAL */ verifyNationalID?(data: NationalIDVerificationRequest): Promise>; /** * WAEC (West African Examinations Council) verification - OPTIONAL */ verifyWAEC?(data: WAECVerificationRequest): Promise>; /** * Generic document verification - OPTIONAL */ verifyDocument?(data: DocumentVerificationRequest): Promise>; /** * Document verification with face matching - OPTIONAL */ verifyDocumentWithFace?(data: DocumentWithFaceVerificationRequest): Promise>; /** * Check if the service is ready and configured */ isReady(): boolean; }