import { Primitive } from 'type-fest'; import type { OCRStatus } from '../../../frankie-client/clients/OCRClient'; import { Core } from './Core'; import { TValidation } from './TValidation'; import { ICloneable, Nullable } from './general'; type TFileUploadUuid = string; export type TScan = { scanId: Nullable; fileUploadUuid?: Nullable; file?: Nullable; mimeType?: Nullable; side?: Nullable; scanCreated?: Nullable; scanName?: Nullable; }; type TDocumentValidation = { manual: { isValid: Nullable; }; electronic: { validationReport: Nullable; isValid: Nullable; }; }; type TDocumentVerification = { electronic: Nullable; manual: Nullable; }; export interface IDocumentPayload { documentId: Nullable; verified: TDocumentVerification; dateOfBirth: Nullable; idType: Nullable; idSubType: Nullable; country: Nullable; region: Nullable; idNumber: Nullable; idExpiry: Nullable; gender: Nullable; extraData: { [field: string]: Nullable; }; ocrResult: OCRResult; docScan: TScan[]; scans: TScan[]; validation: TDocumentValidation; isPersisted: boolean; } export type AcceptableType = Exclude; type OCRResult = { status?: OCRStatus; runDate?: string; mismatch?: string[]; } & Record; export declare class Document implements IDocumentPayload, ICloneable { documentId: Nullable; verified: TDocumentVerification; dateOfBirth: Nullable; idType: Nullable; idSubType: Nullable; country: Nullable; region: Nullable; idNumber: Nullable; idExpiry: Nullable; extraData: { [field: string]: Nullable; }; ocrResult: OCRResult; gender: Nullable; scans: Scan[]; validation: TDocumentValidation; isPersisted: boolean; constructor(); constructor(d: IDocumentConstructor); get docScan(): Scan[]; set docScan(v: Scan[]); isNewDocument(): boolean; getUploadedScanUuids(): string[]; includeUploadFile(uploadUuid: string, s: Scan): void; clone(): Document; toJSON(): IDocumentPayload; static fromJSON(payload: IDocumentPayload): Document; static default(): Document; } export declare class Scan { scanId: Nullable; fileUploadUuid: Nullable; file: Nullable; mimeType: Nullable; side: Nullable; scanCreated: Nullable; scanName: Nullable; constructor(scan: TScan); toJSON(): TScan; static fromJSON(payload: TScan): Scan; } export interface IDocumentConstructor { documentId: string | null; verified?: { electronic: TValidation; manual: TValidation; }; dateOfBirth: string | null; idType: Core['enumIdType'] | null; idSubType: string | null; country: string | null; region: string | null; idNumber: string | null; idExpiry: string | null; gender: Core['enumGender'] | null; extraData?: { [field: string]: Nullable; }; scans?: Scan[]; validation?: { manual: { isValid: TValidation; }; electronic: { validationReport: Scan | null; isValid: TValidation; }; }; isPersisted?: boolean; } export {}; //# sourceMappingURL=Document.d.ts.map