import type { JSONType } from "@scandit/web-datacapture-core";
import type { Serializable } from "@scandit/web-datacapture-core/build/js/private/Serializable";
import { Duration } from "./Duration";
import type { DurationJSON } from "./SerializedTypes";
import { IdAnonymizationMode, IdCaptureTrigger, IdImageType, type IdFieldType } from "./Enums";
import type { IdCaptureDocument, IdCaptureDocumentJSON } from "./document/IdCaptureDocument";
import { INTERNAL_ACCESS } from "./privateAccess";
import { IdCaptureScanner, type IdCaptureScannerJSON } from "./scanner/IdCaptureScanner.js";
export interface IdCaptureSettingsJSON {
    acceptedDocuments: IdCaptureDocumentJSON[];
    rejectedDocuments: IdCaptureDocumentJSON[];
    scanner: IdCaptureScannerJSON;
    imageToResult: Record<IdImageType, boolean>;
    anonymizationMode: IdAnonymizationMode;
    anonymizeDefaultFields: boolean;
    anonymizationMap: Record<string, IdFieldType[]>;
    captureTrigger: IdCaptureTrigger;
    rejectVoidedIds: boolean;
    decodeBackOfEuropeanDrivingLicense: boolean;
    rejectExpiredIds: boolean;
    rejectNotRealIdCompliant: boolean;
    rejectInconsistentData: boolean;
    rejectHolderBelowAge: number | null;
    rejectIdsExpiringIn: DurationJSON | null;
    rejectionTimeoutSeconds: number;
    notifyOnSideCapture: boolean;
    properties: JSONType;
}
export declare class IdCaptureSettings implements Serializable<IdCaptureSettingsJSON> {
    acceptedDocuments: IdCaptureDocument[];
    rejectedDocuments: IdCaptureDocument[];
    scanner: IdCaptureScanner;
    anonymizationMode: IdAnonymizationMode;
    anonymizeDefaultFields: boolean;
    captureTrigger: IdCaptureTrigger;
    rejectVoidedIds: boolean;
    decodeBackOfEuropeanDrivingLicense: boolean;
    rejectExpiredIds: boolean;
    rejectNotRealIdCompliant: boolean;
    rejectInconsistentData: boolean;
    rejectHolderBelowAge: number | null;
    rejectIdsExpiringIn: Duration | null;
    rejectionTimeoutSeconds: number;
    notifyOnSideCapture: boolean;
    private properties;
    private imageToResult;
    private anonymizationMap;
    constructor();
    setProperty(name: string, value: any): void;
    getProperty(name: string): any;
    setShouldPassImageTypeToResult(type: IdImageType, shouldPass: boolean): void;
    getShouldPassImageTypeToResult(type: IdImageType): boolean;
    addAnonymizedField(document: IdCaptureDocument, fieldType: IdFieldType): void;
    removeAnonymizedField(document: IdCaptureDocument, fieldType: IdFieldType): void;
    clearAnonymizedFields(): void;
    clone(): IdCaptureSettings;
    toJSONObject(): IdCaptureSettingsJSON;
    [INTERNAL_ACCESS]: {
        allowCloudScanning: () => boolean;
        documentsRequireCloudScanning: () => boolean;
        shouldEnableVIZScanner: () => boolean;
        validateScannerForCloudDocuments: () => boolean;
        willScanInTheCloud: () => boolean;
    };
    private allowCloudScanning;
    private willScanInTheCloud;
    /**
     * Check that when cloud documents are enabled, the scanner is a single side one with free form text enabled.
     * Returns true when the scanner is valid, false when the scanner is misconfigured.
     */
    private validateScannerForCloudDocuments;
    private documentsRequireCloudScanning;
    private shouldEnableVIZScanner;
    private static fromJSON;
    private static createDocumentFromJSON;
}
