/**
 * Copyright (c) Microblink Ltd. All rights reserved.
 */
import { Recognizer, RecognizerResult, RecognizerSettings, MBDate, WasmSDK } from "../../../MicroblinkSDK/DataStructures";
import { BarcodeData } from "../../BlinkBarcode/BarcodeData";
/**
 * A settings object that is used for configuring the IdBarcodeRecognizer.
 */
export declare class IdBarcodeRecognizerSettings implements RecognizerSettings {
}
/**
 * The result of image recognition when using the IdBarcodeRecognizer.
 */
export interface IdBarcodeRecognizerResult extends RecognizerResult {
    /**
     *  The additional name information of the document owner.
     */
    readonly additionalNameInformation: string;
    /**
     *  The address of the document owner.
     */
    readonly address: string;
    /**
     *  The raw, unparsed barcode data.
     */
    readonly barcodeData: BarcodeData;
    /**
     * The city address portion of the document owner.
     */
    readonly city: string;
    /**
     *  The date of birth of the document owner.
     */
    readonly dateOfBirth: MBDate;
    /**
     *  The date of expiry of the document.
     */
    readonly dateOfExpiry: MBDate;
    /**
     *  The date of issue of the document.
     */
    readonly dateOfIssue: MBDate;
    /**
     *  The additional number of the document.
     */
    readonly documentAdditionalNumber: string;
    /**
     *  The document number.
     */
    readonly documentNumber: string;
    /**
     *  The document type deduced from the recognized barcode
     */
    readonly documentType: IdBarcodeDocumentType;
    /**
     *  The employer of the document owner.
     */
    readonly employer: string;
    /**
     * The additional privileges granted to the driver license owner.
     */
    readonly endorsements: string;
    /**
     * Document specific extended elements that contain all barcode fields in their original form.
     * The indices of specific data within the array are given by the BarcodeElementKey enum.
     *
     * For example, to obtain the first name you can use extendedElements[BarcodeElementKey.CustomerFirstName].
     *
     * Currently this is only filled for AAMVACompliant documents.
     */
    readonly extendedElements: Array<string>;
    /**
     *  The first name of the document owner.
     */
    readonly firstName: string;
    /**
     *  The full name of the document owner.
     */
    readonly fullName: string;
    /**
     *  The issuing authority of the document.
     */
    readonly issuingAuthority: string;
    /**
     * The jurisdiction code address portion of the document owner.
     */
    readonly jurisdiction: string;
    /**
     *  The last name of the document owner.
     */
    readonly lastName: string;
    /**
     *  The marital status of the document owner.
     */
    readonly maritalStatus: string;
    /**
     * The middle name of the document owner.
     */
    readonly middleName: string;
    /**
     *  The nationality of the documet owner.
     */
    readonly nationality: string;
    /**
     *  The personal identification number.
     */
    readonly personalIdNumber: string;
    /**
     *  The place of birth of the document owner.
     */
    readonly placeOfBirth: string;
    /**
     * The postal code address portion of the document owner.
     */
    readonly postalCode: string;
    /**
     *  The profession of the document owner.
     */
    readonly profession: string;
    /**
     *  The race of the document owner.
     */
    readonly race: string;
    /**
     *  The religion of the document owner.
     */
    readonly religion: string;
    /**
     *  The residential stauts of the document owner.
     */
    readonly residentialStatus: string;
    /**
     * The restrictions to driving privileges for the driver license owner.
     */
    readonly restrictions: string;
    /**
     *  The sex of the document owner.
     */
    readonly sex: string;
    /**
     * The street address portion of the document owner.
     */
    readonly street: string;
    /**
     * The type of vehicle the driver license owner has privilege to drive.
     */
    readonly vehicleClass: string;
}
/**
 * The ID Barcode Recognizer is used for scanning barcodes on ID documents.
 */
export interface IdBarcodeRecognizer extends Recognizer {
    /** Returns the currently applied IdBarcodeRecognizerSettings. */
    currentSettings(): Promise<IdBarcodeRecognizerSettings>;
    /** Applies new settings to the recognizer. */
    updateSettings(newSettings: IdBarcodeRecognizerSettings): Promise<void>;
    /** Returns the current result of the recognition. */
    getResult(): Promise<IdBarcodeRecognizerResult>;
}
/**
 * This function is used to create a new instance of `IdBarcodeRecognizer`.
 * @param wasmSDK Instance of WasmSDK which will be used to communicate with the WebAssembly module.
 */
export declare function createIdBarcodeRecognizer(wasmSDK: WasmSDK): Promise<IdBarcodeRecognizer>;
/**
 * Represents the type of scanned document
 */
export declare enum IdBarcodeDocumentType {
    /**
     * No document was scanned
     */
    None = 0,
    /**
     * AAMVACompliant document was scanned
     */
    AAMVACompliant = 1,
    /**
     * ArgentinaID document was scanned
     */
    ArgentinaID = 2,
    /**
     * ArgentinaAlienID document was scanned
     */
    ArgentinaAlienID = 3,
    /**
     * ArgentinaDL document was scanned
     */
    ArgentinaDL = 4,
    /**
     * ColombiaID document was scanned
     */
    ColombiaID = 5,
    /**
     * ColombiaDL document was scanned
     */
    ColombiaDL = 6,
    /**
     * NigeriaVoterID document was scanned
     */
    NigeriaVoterID = 7,
    /**
     * NigeriaDL document was scanned
     */
    NigeriaDL = 8,
    /**
     * PanamaID document was scanned
     */
    PanamaID = 9,
    /**
     * SouthAfricaID document was scanned
     */
    SouthAfricaID = 10
}
