export interface OcrConfig { appKey: string; transactionId: string; idImagePath: string; expectedDocumentSide: string; } export interface CheckOcrResponse { requestId?: string; result?: OcrCheckResult; status?: string; statusCode?: string; } export interface OcrCheckResult { details?: Detail[]; summary?: CheckSummaryResponse; } export interface CheckSummaryResponse { action?: string; details?: Details[]; } export interface Detail { fieldsExtracted?: FieldsExtracted; forgeryChecks?: ForgeryChecks; qualityChecks?: QualityChecks; ruleChecks?: RuleChecks; type?: string; } export interface Details { code?: string; message?: string; } export interface FieldsExtracted { dob?: ExtractedField; doe?: ExtractedField; doi?: ExtractedField; gender?: ExtractedField; homeTown?: ExtractedField; idNumber?: ExtractedField; mrzString?: MrzStringField; name?: ExtractedField; nationality?: ExtractedField; permanentAddress?: PermanentAddressField; placeOfIssue?: ExtractedField; } // Base interface for common extracted fields export interface ExtractedField { confidence?: string; score?: number; toBeReviewed?: string; value?: string; } export interface MrzStringField extends ExtractedField { dateOfBirth?: string; dateOfExpiry?: string; fullName?: string; gender?: string; idNumber?: string; nationality?: string; } export interface PermanentAddressField extends ExtractedField { district?: string; province?: string; street?: string; } export interface ForgeryChecks { colorPrintout?: CheckField; digitalText?: CheckField; facePhoto?: CheckField; physicalText?: CheckField; } export interface QualityChecks { blackAndWhite?: CheckField; blur?: CheckField; capturedFromScreen?: CheckField; glare?: CheckField; } // Common interface for check fields export interface CheckField { confidence?: string; score?: number; toBeReviewed?: string; value?: string; } // Empty interface as per original export interface RuleChecks { } /** OCR error – dùng chung EKYCError (event, code, message). */ export type OcrError = import('./ekycType').EKYCError; /** * Payload emitted by onOcrSuccess listener / startOcr() Promise resolve. * event = "OCR_SUCCESS" | "LOG_SUCCESS" * data = CheckOcrResponse object (SDK đảm bảo luôn là object, không phải JSON string). */ export interface OcrSuccessEvent { event: string; data: CheckOcrResponse; }