import { Symbology } from './sdcBarcodeData.js';
import { SymbologySettings } from './sdcSymbologySettings.js';
import { WasmFrameData, DataCaptureContext } from '@scandit/web-datacapture-core/build/js/worker/dataCaptureWorkerRelated';
import { LocationSelection } from './sdcCoreInternalSdkArea.js';
import { WrappedFuture } from './sdcCoreInternalSdkCommonAsync.js';
import { R as ResultOrError } from '../ResultOrError-wVDzYSuC.js';
import { ExternalOcrBackend } from './sdcCoreInternalSdkOcr.js';
import { Rect } from './sdcCoreCommonGeometry.js';
import { LabelFieldLocationType, LabelDateComponentFormat } from './sdcLabelData.js';
import { CapturedLabel, LabelField } from './sdcLabelInternalModuleData.js';
import './sdcCoreInternalSdkCommonGeometry.js';
import './sdcCoreCommonGraphic.js';
import './sdcCoreCommon.js';
import './sdcBarcodeInternalSdkData.js';
import './sdcCoreCommonBuffer.js';

interface LabelCapture {
    isEnabled(): boolean;
    setEnabled(enabled: boolean): void;
    isAttachedToContext(): boolean;
    addListenerAsync(listener: LabelCaptureListener, priority: number): void;
    removeListenerAsync(listener: LabelCaptureListener): void;
    getSession(): LabelCaptureSession;
    applySettingsWrapped(settings: LabelCaptureSettings): WrappedFuture;
    getContext(): DataCaptureContext;
    registerExternalOcrBackend(backend: ExternalOcrBackend): void;
    shouldUseEngineDrivenAnimations(): boolean;
    validationFlowHandler(): ValidationFlowHandler;
}
interface LabelCapture_statics {
    create(context: DataCaptureContext, settings: LabelCaptureSettings): LabelCapture;
}
interface LabelCaptureHelper {
}
interface LabelCaptureHelper_statics {
    addLabelCaptureToContext(mode: LabelCapture, context: DataCaptureContext): void;
    removeLabelCaptureFromContext(mode: LabelCapture, context: DataCaptureContext): void;
}
interface LabelCaptureSettings {
    setLocationSelection(locationSelection: LocationSelection): void;
    getLocationSelection(): LocationSelection | undefined;
    getLicenseKey(): string;
    setLicenseKey(license: string): void;
    getLicensee(): string;
    setLicensee(licensee: string): void;
    getIntProperty(key: string): number | undefined;
    setIntProperty(key: string, value: number): void;
    getBlueprintJson(): string;
}
interface LabelCaptureSettings_statics {
    loadFromString(description: string): ResultOrError<LabelCaptureSettings, string>;
    createFromLabelDefinitions(labelDefinitions: Array<LabelDefinition>): ResultOrError<LabelCaptureSettings, string>;
    create(labelDefinitions: Array<LabelDefinition>, hiddenPropertyJsonString: string, blueprintJsonUpdate: string): ResultOrError<LabelCaptureSettings, string>;
}
interface LabelCaptureSession {
    getLabels(): Array<CapturedLabel>;
    getLastFrameId(): number;
    toJson(): string;
}
interface LabelCaptureListener {
    onSessionUpdated(mode: LabelCapture, session: LabelCaptureSession, data: WasmFrameData): void;
    onObservationStarted(mode: LabelCapture): void;
    onObservationStopped(mode: LabelCapture): void;
}
interface LabelDefinition {
    getName(): string;
    getFieldDefinitions(): Array<LabelFieldDefinition>;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
}
interface LabelDefinition_statics {
    create(name: string, fieldDefinitions: Array<LabelFieldDefinition>): LabelDefinition;
    createVinLabelDefinition(name: string): LabelDefinition;
    createPriceCaptureDefinition(name: string): LabelDefinition;
    createSevenSegmentDisplayLabelDefinition(name: string): LabelDefinition;
}
interface LabelFieldDefinition {
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
}
interface LabelDateFormat {
    componentFormat: LabelDateComponentFormat;
    acceptPartialDates: boolean;
}
interface TextField {
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    resetDataTypePatterns(): void;
}
interface DateText {
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    asLabelFieldDefinition(): LabelFieldDefinition;
    getLabelDateFormat(): LabelDateFormat;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    getDataTypePatterns(): Array<string> | undefined;
    resetDataTypePatterns(): void;
}
interface DateText_statics {
    create(name: string, format: LabelDateFormat): DateText;
}
interface ExpiryDateText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    setLabelDateFormat(format: LabelDateFormat): void;
    getLabelDateFormat(): LabelDateFormat | undefined;
    resetDataTypePatterns(): void;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
}
interface ExpiryDateText_statics {
    create(name: string): ExpiryDateText;
}
interface PackingDateText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    setLabelDateFormat(format: LabelDateFormat): void;
    getLabelDateFormat(): LabelDateFormat | undefined;
    resetDataTypePatterns(): void;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
}
interface PackingDateText_statics {
    create(name: string): PackingDateText;
}
interface TotalPriceText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    resetDataTypePatterns(): void;
}
interface TotalPriceText_statics {
    create(name: string): TotalPriceText;
}
interface UnitPriceText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    resetDataTypePatterns(): void;
}
interface UnitPriceText_statics {
    create(name: string): UnitPriceText;
}
interface WeightText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    resetDataTypePatterns(): void;
}
interface WeightText_statics {
    create(name: string): WeightText;
}
interface CustomText {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    resetDataTypePatterns(): void;
}
interface CustomText_statics {
    create(name: string): CustomText;
}
interface BarcodeField {
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
}
interface BarcodeField_statics {
    defaultSymbologies(symbologies: Array<Symbology>): Array<SymbologySettings>;
}
interface ImeiOneBarcode {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    /** inherited from barcode_field */
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
}
interface ImeiOneBarcode_statics {
    create(name: string): ImeiOneBarcode;
}
interface ImeiTwoBarcode {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    /** inherited from barcode_field */
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
}
interface ImeiTwoBarcode_statics {
    create(name: string): ImeiTwoBarcode;
}
interface PartNumberBarcode {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    /** inherited from barcode_field */
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
}
interface PartNumberBarcode_statics {
    create(name: string): PartNumberBarcode;
}
interface SerialNumberBarcode {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    /** inherited from barcode_field */
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
}
interface SerialNumberBarcode_statics {
    create(name: string): SerialNumberBarcode;
}
interface CustomBarcode {
    asLabelFieldDefinition(): LabelFieldDefinition;
    /** inherited from label_field_definition */
    getName(): string;
    isOptional(): boolean;
    setOptional(optional: boolean): void;
    getPatterns(): Array<string>;
    setPatterns(patterns: Array<string>): void;
    getHiddenProperties(): string;
    setHiddenProperties(jsonString: string): void;
    getLocation(): LabelFieldLocation | undefined;
    setLocation(location: LabelFieldLocation): void;
    getDataTypePatterns(): Array<string> | undefined;
    setDataTypePatterns(dataTypePatterns: Array<string>): void;
    /** inherited from barcode_field */
    getSymbologies(): Array<SymbologySettings>;
    setSymbologies(symbologies: Array<SymbologySettings>): void;
}
interface CustomBarcode_statics {
    create(name: string, symbologies: Array<SymbologySettings>): CustomBarcode;
}
interface LabelFieldLocation {
    getLabelFieldLocationType(): LabelFieldLocationType | undefined;
    getRect(): Rect | undefined;
}
interface LabelFieldLocation_statics {
    createWithType(locationType: LabelFieldLocationType): LabelFieldLocation;
    createWithRect(rect: Rect): LabelFieldLocation;
}
declare enum ValidationFlowState {
    IDLE = 0,
    IN_PARTIAL_SCAN = 1,
    IN_COMPLETE_SCAN = 2,
    PAUSED = 3,
    FINISHED = 4
}
interface ValidationFlowField {
    getLabelField(): LabelField;
    isValid(): boolean;
}
interface ValidationFlowListener {
    onFieldsScanned(fields: Array<ValidationFlowField>): void;
    onScanTimeout(): void;
    onLabelIsMissingRequiredField(fields: Array<ValidationFlowField>): void;
    onStateChanged(state: ValidationFlowState): void;
    onCloudBackupServiceStartedForFields(fields: Array<ValidationFlowField>): void;
    onCloudBackupServiceFailedForFields(fields: Array<ValidationFlowField>): void;
}
interface ValidationFlowHandler {
    startCompleteLabelScan(labelName: string): void;
    startPartialLabelScan(fieldNames: Array<string>): void;
    updateFieldValue(fieldName: string, value: string): boolean;
    finishFlow(): ResultOrError<Array<ValidationFlowField>, string>;
    validationFlowFields(): Array<ValidationFlowField>;
    pauseScan(): void;
    resumeScan(): void;
    cancelCloudBackupTaskForField(fieldName: string): void;
    uncancelCloudBackupTaskForField(fieldName: string): void;
    addListener(listener: ValidationFlowListener): void;
    removeListener(listener: ValidationFlowListener): void;
}
interface ValidationFlowHandler_statics {
    create(labelCapture: LabelCapture, listener: ValidationFlowListener): ValidationFlowHandler;
}
interface SdcLabelInternalModuleCapture_statics {
    LabelCapture: LabelCapture_statics;
    LabelCaptureHelper: LabelCaptureHelper_statics;
    LabelCaptureSettings: LabelCaptureSettings_statics;
    LabelDefinition: LabelDefinition_statics;
    DateText: DateText_statics;
    ExpiryDateText: ExpiryDateText_statics;
    PackingDateText: PackingDateText_statics;
    TotalPriceText: TotalPriceText_statics;
    UnitPriceText: UnitPriceText_statics;
    WeightText: WeightText_statics;
    CustomText: CustomText_statics;
    BarcodeField: BarcodeField_statics;
    ImeiOneBarcode: ImeiOneBarcode_statics;
    ImeiTwoBarcode: ImeiTwoBarcode_statics;
    PartNumberBarcode: PartNumberBarcode_statics;
    SerialNumberBarcode: SerialNumberBarcode_statics;
    CustomBarcode: CustomBarcode_statics;
    LabelFieldLocation: LabelFieldLocation_statics;
    ValidationFlowHandler: ValidationFlowHandler_statics;
}

export { type BarcodeField, type BarcodeField_statics, type CustomBarcode, type CustomBarcode_statics, type CustomText, type CustomText_statics, type DateText, type DateText_statics, type ExpiryDateText, type ExpiryDateText_statics, type ImeiOneBarcode, type ImeiOneBarcode_statics, type ImeiTwoBarcode, type ImeiTwoBarcode_statics, type LabelCapture, type LabelCaptureHelper, type LabelCaptureHelper_statics, type LabelCaptureListener, type LabelCaptureSession, type LabelCaptureSettings, type LabelCaptureSettings_statics, type LabelCapture_statics, type LabelDateFormat, type LabelDefinition, type LabelDefinition_statics, type LabelFieldDefinition, type LabelFieldLocation, type LabelFieldLocation_statics, type PackingDateText, type PackingDateText_statics, type PartNumberBarcode, type PartNumberBarcode_statics, type SdcLabelInternalModuleCapture_statics, type SerialNumberBarcode, type SerialNumberBarcode_statics, type TextField, type TotalPriceText, type TotalPriceText_statics, type UnitPriceText, type UnitPriceText_statics, type ValidationFlowField, type ValidationFlowHandler, type ValidationFlowHandler_statics, type ValidationFlowListener, ValidationFlowState, type WeightText, type WeightText_statics };
