/** * eSign Type Definitions * Đồng bộ với EkycNativeAndroid ESignModels.kt * Native parse JSON → model, RN/Flutter chỉ dùng (không parse) */ /** * eSign Initialize Result */ export interface UserEsignModel { cccd: string; name: string; device?: string; deviceId?: string; } export interface ESignInitResult { code: string; message: string; } /** * eSign Open Session Result */ export interface ESignOpenSessionResult { deviceState: string; code: string; message: string; } /** * eSign Certificate Info */ export interface ESignCertificate { serial: string; subject: string; validFrom?: string; validTo?: string; } /** * eSign Sign Request Info */ export interface ESignSignRequest { requestId: string; authId?: string; authData?: string; } /** * eSign Sign Request Info */ export interface ESignSignRequestConfirm { requestId: string; authId?: string; authData?: string; } /** * eSign API Response – registerRemoteSigning, registerAndConfirm * Native parse JSON → ESignApiResponse, RN nhận object đã parse */ export interface ESignApiResponse { status: number; msg: string; errorCode?: string; data?: { sessionId?: string; [key: string]: any; }; response?: string; } /** * eSign Sign PDF Result – signPdf, signPdfMultiplePositions * Native parse JSON → ESignPdfResult, RN nhận object đã parse */ export interface ESignPdfResult { status: number; msg: string; errorCode?: string; data?: { transactionId: string; [key: string]: any; // Cho phép các field động khác }; // Fallback field khi không parse được JSON response?: string; } /** eSign error – dùng chung EKYCError (event, code, message). */ export type ESignError = import('./ekycType').EKYCError; /** * eSign Authenticate Result */ export interface ESignAuthenticateResult { token: string; userId: string; } /** * Authorize Info */ export interface AuthorizeInfo { authorizeRequestId: string; serial: string; quantity: number; time: number; message: string; authId: string; authData: string; createTime: string; expireTime: string; } /** * Authorization Status Enum */ export enum AuthorizationStatus { WAITING_TO_ACCESS = 'WAITING_TO_ACCESS', REVOKED = 'REVOKED', EXPIRED = 'EXPIRED', INACTIVE = 'INACTIVE', REJECTED = 'REJECTED', ACTIVE = 'ACTIVE' }