import { AdaptiveRecognitionMode } from './AdaptiveRecognitionMode.js';
import { ImeiOneBarcode } from './ImeiOneBarcode.js';
import { ImeiTwoBarcode } from './ImeiTwoBarcode.js';
import { LabelFieldDefinition } from './LabelFieldDefinition.js';
import { PackingDateText } from './PackingDateText.js';
import { PartNumberBarcode } from './PartNumberBarcode.js';
import { SerialNumberBarcode } from './SerialNumberBarcode.js';
import { TotalPriceText } from './TotalPriceText.js';
import { UnitPriceText } from './UnitPriceText.js';
import { WeightText } from './WeightText.js';
import { nativeHandle } from '@scandit/web-datacapture-core/build/js/private/nativeHandle.js';
import { CustomBarcode } from './CustomBarcode.js';
import { CustomText } from './CustomText.js';
import { DateText } from './DateText.js';
import { ExpiryDateText } from './ExpiryDateText.js';
import '@scandit/web-datacapture-barcode';
import './BarcodeField.js';
import '../NativeProxy-BpXwaSl-.js';
import '@scandit/web-datacapture-core/build/js/worker/dataCaptureWorkerRelated';
import '../djinni-types/sdcBarcodeInternalSdkData.js';
import '../djinni-types/sdcBarcodeData.js';
import '../djinni-types/sdcCoreCommonGeometry.js';
import '../djinni-types/sdcCoreCommonBuffer.js';
import '../sdcLabelInternalModuleCapture-CxPSiq2o.js';
import '../djinni-types/sdcSymbologySettings.js';
import '../djinni-types/sdcCoreInternalSdkArea.js';
import '../djinni-types/sdcCoreInternalSdkCommonGeometry.js';
import '../djinni-types/sdcCoreCommonGraphic.js';
import '../djinni-types/sdcCoreInternalSdkCommonAsync.js';
import '../djinni-types/sdcCoreInternalSdkOcr.js';
import '../djinni-types/sdcCoreCommon.js';
import '../djinni-types/sdcLabelData.js';
import '../djinni-types/sdcLabelInternalModuleData.js';
import '../djinni-types/sdcCoreInternalSdkUiViewfinder.js';
import '../djinni-types/sdcCoreInternalSdkCommonGraphics.js';
import '../djinni-types/sdcLabelInternalModuleUiOverlay.js';
import '../djinni-types/sdcCoreInternalSdkCapture.js';
import '../djinni-types/sdcCoreInternalSdkUiStyle.js';
import '@scandit/web-datacapture-core';
import './CapturedLabel.js';
import './LabelField.js';
import './LabelFieldState.js';
import './LabelFieldType.js';
import './LabelFieldValueType.js';
import './LabelDateResult.js';
import './LabelCaptureSession.js';
import './LabelDateFormat.js';
import './LabelDateComponentFormat.js';
import './LabelFieldLocationType.js';
import './ReceiptScanningLineItem.js';
import './ValidationFlowField.js';
import './TextField.js';
import './LabelFieldLocation.js';

declare class LabelDefinition {
    private [nativeHandle];
    private _name;
    private _fields;
    private _hiddenProperties;
    private _adaptiveRecognitionMode;
    private constructor();
    get name(): string;
    get fields(): LabelFieldDefinition[];
    get adaptiveRecognitionMode(): AdaptiveRecognitionMode;
    setAdaptiveRecognitionMode(mode: AdaptiveRecognitionMode): Promise<void>;
    static builder(): LabelDefinitionBuilder;
    static createVinLabelDefinition(name: string, adaptiveRecognitionMode?: AdaptiveRecognitionMode): Promise<LabelDefinition>;
    static createPriceCaptureDefinition(name: string, adaptiveRecognitionMode?: AdaptiveRecognitionMode): Promise<LabelDefinition>;
    private static forHandle;
}
declare class LabelDefinitionBuilder {
    private fieldDefinitions;
    private hiddenProperties;
    private adaptiveRecognitionMode_;
    addSerialNumberBarcode(barcode: SerialNumberBarcode): this;
    addPartNumberBarcode(barcode: PartNumberBarcode): this;
    addImeiOneBarcode(barcode: ImeiOneBarcode): this;
    addImeiTwoBarcode(barcode: ImeiTwoBarcode): this;
    addCustomBarcode(barcode: CustomBarcode): this;
    addUnitPriceText(text: UnitPriceText): this;
    addTotalPriceText(text: TotalPriceText): this;
    addWeightText(text: WeightText): this;
    addPackingDateText(text: PackingDateText): this;
    addExpiryDateText(text: ExpiryDateText): this;
    addDateText(text: DateText): this;
    addCustomText(text: CustomText): this;
    setHiddenProperty(key: string, value: unknown): this;
    setHiddenProperties(hiddenProperties: Record<string, unknown>): this;
    adaptiveRecognitionMode(mode: AdaptiveRecognitionMode): this;
    build(name: string): Promise<LabelDefinition>;
}

export { LabelDefinition, LabelDefinitionBuilder };
