import { EkycConfig, OcrRequest, OcrResponse, LivenessRequest, LivenessResponse, FaceMatchRequest, FaceMatchResponse, EkycFlowInput, EkycFlowResult } from "./types"; /** * EkycService – Main class of the eKYC SDK. * * Uses the **Singleton pattern** to ensure only one instance * exists throughout the entire application. * * @example * ```typescript * // Initialize the SDK * const ekyc = EkycService.getInstance({ * baseUrl: 'https://ekyc-api.example.com/api/ekyc', * apiKey: 'your-api-key', * timeout: 30000, * }); * * // Run the full eKYC flow * const result = await ekyc.startEkycFlow({ * documentFront: frontImageBlob, * documentBack: backImageBlob, * selfieImage: selfieBlob, * }); * * console.log(result.isVerified); // true/false * ``` */ export declare class EkycService { private static instance; private readonly config; private readonly ocrService; private readonly livenessService; private readonly faceMatchService; private constructor(); /** * Get the singleton instance of EkycService. * If no instance exists, a new one will be created with the provided config. * * @param config - SDK configuration (required on first call) * @returns The singleton instance of EkycService * @throws {EkycError} When called for the first time without config */ static getInstance(config?: EkycConfig): EkycService; /** * Reset the singleton instance (useful for testing or reconfiguration). */ static resetInstance(): void; private validateConfig; /** * Extract information from ID card images (CMND/CCCD). * Accepts Blob, File, or base64 string inputs. */ performOcr(request: OcrRequest): Promise; /** * Verify liveness from a selfie image. * Accepts Blob, File, or base64 string input. */ checkLiveness(request: LivenessRequest): Promise; /** * Compare a selfie with a document photo for identity verification. * Accepts Blob, File, or base64 string inputs. */ matchFaces(request: FaceMatchRequest): Promise; /** * Orchestrate the full eKYC flow: OCR → Liveness → Face Match. * * Flow: * 1. **OCR**: Extract document information from front/back images * 2. **Liveness**: Verify the selfie is from a live person * 3. **Face Match**: Compare the selfie with the document photo * * The flow will stop early if liveness check fails (not a live person). * * @param input - Input data for the entire flow * @returns Combined result including all steps + verification status * @throws {EkycError} When any step fails */ startEkycFlow(input: EkycFlowInput): Promise; } //# sourceMappingURL=EkycService.d.ts.map