import type { NativeRecognizedLine } from '../RnAfIdentityOcr.types'; export type MrzFormat = 'TD1' | 'TD3'; export type MrzCandidate = { format: MrzFormat; /** Normalized and fitted to the format's fixed line length. */ lines: string[]; /** Mean OCR confidence of the source lines, 0..1. */ confidence: number; }; /** Same shape as af-identity-scanner RecognitionResult (lines only). */ export type MrzRecognition = { lines: NativeRecognizedLine[]; }; /** * Uppercases, drops whitespace, maps chevron lookalikes, and strips anything * outside the MRZ charset. Letter/digit confusions (O/0, I/1) are left for the * check-digit-guided autocorrect in the parser. * * Important: OCR often emits `«` (guillemet) for a *single* `<`. Mapping that to * `<<` inflates the line past 44/30 chars; fitLength then truncates the start and * chops off trailing check digits so `mrz` parse throws. */ export declare function normalizeMrzText(text: string): string; /** * Finds the MRZ among recognized lines by shape and position: chevron filler, * minimum length, and bottom-of-document placement. * * Core algorithm matches af-identity-scanner. Also splits merged ~88-char TD3 * (or ~90-char TD1) OCR lines, and falls back to scraping `P<…` from compacted text. */ export declare function locateMrz(recognition: MrzRecognition | NativeRecognizedLine[]): MrzCandidate | null; //# sourceMappingURL=locate.d.ts.map