# core library Core

Core types, models, and utilities for the Scanbot SDK.

This library provides foundational types and internal models for barcode recognition, document processing, image handling, and serialization. It is intended to be reused across higher-level Scanbot SDK components, including UI layers and platform integrations.

The library includes data models for barcode types, document fields, geometries, images, and object pools, as well as platform abstraction and JSON serialization logic.

## Classes

AAMVA
  AAMVA
AAMVADLID
  Driver License Or ID Document
AAMVADLIDFieldNames
  Constants for the field type names of AAMVA.DLID.
AAMVADriverLicense
  Driver License. File type "DL".
AAMVAEnhancedDriverLicense
  Enhanced Driver License. File type "EN".
AAMVAFieldNames
  Constants for the field type names of AAMVA.
AAMVAIDCard
  ID Card. File type "ID".
AAMVAMotorCarrierData
  Motor Carrier Data. File type "MC".
AAMVAMotorCarrierDataFieldNames
  Constants for the field type names of AAMVA.MotorCarrierData.
AAMVARawDocument
  The raw document as was parsed from the barcode. The original field key names and field values as they appear in the barcode are left as-is. The mnemonic field keys from the AAMVA specification are not replaced with human-readable names. No field value normalization, like ISO 8601 date reformatting, etc., is done.
AAMVARegistrantAndVehicleData
  Registrant And Vehicle Data. File type "IR".
AAMVARegistrantAndVehicleDataFieldNames
  Constants for the field type names of AAMVA.RegistrantAndVehicleData.
AAMVARegistrationData
  Registration Data. File type "RG".
AAMVARegistrationDataFieldNames
  Constants for the field type names of AAMVA.RegistrationData.
AAMVATitleData
  Title Data. File type "TD".
AAMVATitleDataFieldNames
  Constants for the field type names of AAMVA.TitleData.
AAMVAVehicleData
  Vehicle Data. File type "VH".
AAMVAVehicleDataFieldNames
  Constants for the field type names of AAMVA.VehicleData.
AAMVAVehicleOwnerData
  Vehicle Owner Data. File type "OW".
AAMVAVehicleOwnerDataFieldNames
  Constants for the field type names of AAMVA.VehicleOwnerData.
AAMVAVehicleSafetyInspectionData
  Vehicle Safety Inspection Data. File type "VS".
AAMVAVehicleSafetyInspectionDataFieldNames
  Constants for the field type names of AAMVA.VehicleSafetyInspectionData.
AspectRatio
  Aspect ratio is the ratio of the width to the height of an image or screen.
AutoReleasable
AutoReleasePool
BarcodeAccumulationConfiguration
  Configuration for how to accumulate results.
BarcodeDocumentFormats
  Barcode document formats.
BarcodeFormatAustraliaPostConfiguration
  Australia Post barcode configuration. Add to scanner configuration to scan Australia Post barcodes.
BarcodeFormatAztecConfiguration
  Aztec configuration. Add to scanner configuration to scan Aztec codes.
BarcodeFormatCodabarConfiguration
  Codabar barcode configuration. Add to scanner configuration to scan Codabar barcodes.
BarcodeFormatCode11Configuration
  Code 11 barcode configuration. Add to scanner configuration to scan Code 11 barcodes.
BarcodeFormatCode128Configuration
  Code 128 barcode configuration. Add to scanner configuration to scan Code 128 barcodes.
BarcodeFormatCode2Of5Configuration
  Configuration for all 2-of-5 barcode types (except Interleaved 2-of-5, which is handled by ItfConfig). Add to scanner configuration to scan Code 25, IATA 2-of-5 and Industrial 2-of-5 barcodes.
BarcodeFormatCode39Configuration
  Code 39 barcode and derivatives configuration. Add to scanner configuration to scan Code 39, Code 32 (Italian Pharmacode), PZN7 and PZN8 (Pharmazentralnummer) barcodes.
BarcodeFormatCode93Configuration
  Code 93 barcode configuration. Add to scanner configuration to scan Code 93 barcodes.
BarcodeFormatCommonConfiguration
  Convenience configuration for enabling the scanning of multiple barcode formats with a common configuration. Add to scanner configuration to enable and configure the scanning of multiple barcodes.
BarcodeFormatCommonFourStateConfiguration
  Convenience configuration for enabling the scanning of multiple four-state barcode formats with a common configuration. Add to scanner configuration to enable and configure the scanning of multiple four-state codes.
BarcodeFormatCommonOneDConfiguration
  Convenience configuration for enabling the scanning of multiple linear (1D) barcode formats with a common configuration. Add to scanner configuration to enable and configure the scanning of multiple linear (1D) barcode formats.
BarcodeFormatCommonTwoDConfiguration
  Convenience configuration for enabling the scanning of multiple 2D codes with a common configuration. Add to scanner configuration to enable and configure the scanning of multiple 2D codes.
BarcodeFormatConfigurationBase
  Base class for all barcode configurations.
BarcodeFormatDataBarConfiguration
  GS1 DataBar barcode configuration. Add to scanner configuration to scan GS1 DataBar-14, GS1 DataBar-14 Truncated, GS1 DataBar-14 Stacked and GS1 DataBar-14 Stacked Omnidirectional barcodes.
BarcodeFormatDataBarExpandedConfiguration
  GS1 DataBar Expanded barcode configuration. Add to scanner configuration to scan GS1 DataBar Expanded and GS1 DataBar Expanded Stacked barcodes.
BarcodeFormatDataBarLimitedConfiguration
  GS1 DataBar Limited barcode configuration. Add to scanner configuration to scan GS1 DataBar Limited barcodes.
BarcodeFormatDataMatrixConfiguration
  DataMatrix configuration. Add to scanner configuration to scan DataMatrix and DataMatrix rectangular extensions (DMRE) codes.
BarcodeFormatFourStateConfigurationBase
  Base class for all four-state barcode configurations.
BarcodeFormatGs1CompositeConfiguration
  GS1 Composite configuration. Add to scanner configuration to scan GS1 Composite barcodes.
BarcodeFormatItfConfiguration
  ITF (Interleaved 2-of-5) barcode configuration. Add to scanner configuration to scan Interleaved 2-of-5 (ITF) barcodes.
BarcodeFormatJapanPostConfiguration
  Japan Post barcode configuration. Add to scanner configuration to scan Japan Post barcodes.
BarcodeFormatMaxiCodeConfiguration
  MaxiCode configuration. Add to scanner configuration to scan MaxiCode codes.
BarcodeFormatMicroPdf417Configuration
  MicroPDF417 configuration. Add to scanner configuration to scan MicroPDF417 codes.
BarcodeFormatMsiPlesseyConfiguration
  MSI Plessey barcode configuration. Add to scanner configuration to scan MSI Plessey barcodes.
BarcodeFormatOneDConfigurationBase
  Base class for all linear (1D) barcode configurations.
BarcodeFormatPdf417Configuration
  PDF417 configuration. Add to scanner configuration to scan PDF417 codes.
BarcodeFormatPharmaCodeConfiguration
  PharmaCode barcode configuration. Add to scanner configuration to scan linear (1D) Laetus Pharmacode barcodes. Two-track PharmaCode scanning is configured separately through the PharmaCodeTwoTrackConfig class.
BarcodeFormatPharmaCodeTwoTrackConfiguration
  PHARMA_CODE_TWO_TRACK barcode configuration. Add to scanner configuration to scan Laetus two-track PharmaCode barcodes. Linear (i.e. one-track) PharmaCode scanning is configured separately through the PharmaCodeConfig class.
BarcodeFormatQrCodeConfiguration
  QR Code configuration. Add to scanner configuration to scan QR codes, Micro QR codes and rectangular Micro QR (rMQR) codes.
BarcodeFormatRoyalMailConfiguration
  Royal Mail barcode configuration. Add to scanner configuration to scan Royal Mail (a.k.a. RM4SCC, CBC, BPO 4-State) barcodes.
BarcodeFormatRoyalTntPostConfiguration
  Royal TNT Post barcode configuration. Add to scanner configuration to scan Royal TNT Post (a.k.a. KIX, Klant IndeX) barcodes.
BarcodeFormats
  Lists of barcode formats to decode.
BarcodeFormatTwoDConfigurationBase
  Base class for all 2D barcode configurations.
BarcodeFormatUpcEanConfiguration
  UPC/EAN barcode configuration. Add to scanner configuration to scan EAN-8, EAN-13, UPC-E and UPC-A barcodes.
BarcodeFormatUspsIntelligentMailConfiguration
  USPS Intelligent Mail barcode configuration. Add to scanner configuration to scan USPS Intelligent Mail (a.k.a. USPS OneCode, USPS-STD-11) barcodes.
BarcodeItem
  A single barcode found in the input image. Barcodes with the same content but different locations in the image are considered separate barcodes.
BarcodeScannerConfiguration
  Configuration for the barcode scanner.
BarcodeScannerResult
  The result of barcode scanning.
BasicImageLoadOptions
  Basic options for loading image.
BoardingPass
  Boarding Pass
BoardingPassFieldNames
  Constants for the field type names of BoardingPass.
BoardingPassLeg
  Leg of the journey
BoardingPassLegFieldNames
  Constants for the field type names of BoardingPass.Leg.
BufferImageLoadOptions
  Options for loading image from buffer.
CBufferImageLoadOptions
CEncodeImageOptions
CImageInfo
CPathImageLoadOptions
CRectangleInt
CSaveImageOptions
DEMedicalPlan
  Medical Plan
DEMedicalPlanDoctor
  Doctor
DEMedicalPlanDoctorFieldNames
  Constants for the field type names of DEMedicalPlan.Doctor.
DEMedicalPlanFieldNames
  Constants for the field type names of DEMedicalPlan.
DEMedicalPlanPatient
  Patient
DEMedicalPlanPatientFieldNames
  Constants for the field type names of DEMedicalPlan.Patient.
DEMedicalPlanSubheading
  Subheading
DEMedicalPlanSubheadingFieldNames
  Constants for the field type names of DEMedicalPlan.Subheading.
DEMedicalPlanSubheadingMedicine
  Medicine
DEMedicalPlanSubheadingMedicineFieldNames
  Constants for the field type names of DEMedicalPlan.Subheading.Medicine.
DEMedicalPlanSubheadingMedicineSubstance
  Substance
DEMedicalPlanSubheadingMedicineSubstanceFieldNames
  Constants for the field type names of DEMedicalPlan.Subheading.Medicine.Substance.
DEMedicalPlanSubheadingPrescription
  Prescription
DEMedicalPlanSubheadingPrescriptionFieldNames
  Constants for the field type names of DEMedicalPlan.Subheading.Prescription.
EncodeImageOptions
  Options for encoding image.
Field
  Generic document field.
FieldParsedData
  Parsed data.
FieldType
  Generic Document Type.
FieldWrapper
GenericDocument
  Generic document.
GenericDocumentType
  Generic Document Type.
GenericDocumentWrapper
GS1
  GS1
GS1Element
  GS1 Element
GS1ElementFieldNames
  Constants for the field type names of GS1.Element.
GS1ElementValidationError
  Validation Errors
GS1ElementValidationErrorFieldNames
  Constants for the field type names of GS1.Element.ValidationError.
HIBC
  HIBC
HIBCFieldNames
  Constants for the field type names of HIBC.
IDCardPDF417
  ID Card
IDCardPDF417FieldNames
  Constants for the field type names of IDCardPDF417.
ImageInfo
  Image Info.
ImageProfile
  ImageRef profile part specific to image information.
ImageRef
ImageRefPoolSnapshot
  Snapshot of all alive ImageRefs.
ImageRefPoolSnapshotsDiff
  difference between two snapshots.
ImageRefProfile
  ImageRef profile which provides detailed information about stored object.
ImageSource
  Description of source from which the ImageRef was created.
Insets
LineSegmentFloat
  Represents a line segment in 2D space.
LineSegmentInt
  Represents a line segment in 2D space.
MedicalCertificate
  Medical Certificate
MedicalCertificateFieldNames
  Constants for the field type names of MedicalCertificate.
OcrResult
  Result of OCR text recognition.
PathImageLoadOptions
  Options for loading image from path.
RangeEncoding
  A character encoding for a given range of bytes.
RawImageLoadOptions
  Options for loading images that come from sensor.
RefCountedObjectProfile
  Profile info of a reference-counted stored object.
SaveImageOptions
  Options for saving image to a path.
SEPA
  SEPA
SEPAFieldNames
  Constants for the field type names of SEPA.
StructuredAppendInfo
  The structured append mode can be used to split a message across multiple barcodes.
SwissQR
  SwissQR
SwissQRFieldNames
  Constants for the field type names of SwissQR.
TextFieldWrapper
  Text field wrapper
ToJsonConfiguration
  Configuration used to serialize an object to json.
ValidatedTextFieldWrapper
  Text field wrapper
VCard
  VCard
VCardAnniversary
  Anniversary
VCardBirthday
  Birthday
VCardBusyTimeURL
  Busy Time URL
VCardCalendarURI
  Calendar URI
VCardCalendarURIForRequests
  Calendar URI For Requests
VCardCategories
  Categories
VCardClientPIDMap
  Client PID Map
VCardCustom
  Custom
VCardDeliveryAddress
  Delivery Address
VCardEmail
  Email
VCardEntry
  VCard Entry
VCardEntryFieldNames
  Constants for the field type names of VCard.Entry.
VCardFirstName
  First Name
VCardGender
  Gender
VCardGeoLocation
  Geo Location
VCardIMPP
  IMPP
VCardKind
  Kind
VCardLanguages
  Languages
VCardLogo
  Logo
VCardMember
  Member
VCardName
  Name
VCardNickname
  Nickname
VCardNote
  Note
VCardOrganisation
  Organisation
VCardPhoto
  Photo
VCardProductId
  ProductId
VCardPublicKey
  Public Key
VCardRelated
  Related
VCardRevision
  Revision
VCardRole
  Role
VCardSound
  Sound
VCardSource
  Source
VCardTelephoneNumber
  Telephone Number
VCardTimeZone
  Time Zone
VCardTitle
  Title
VCardUID
  UID
VCardURL
  URL
VCardVersion
  Version
VCardXML
  XML
ZoomRange

## Enums

AustraliaPostCustomerFormat
  Can be either numeric or alphanumeric and is only relevant for Format Codes 59 and 62.
BarcodeAccumulationMethod
  The method how to display barcodes from previous frames.
BarcodeDocumentFormat
  Type of barcode document format used.
BarcodeFormat
  Enumerates barcode formats.
BarcodeOverlayTextFormat
BarcodeScannerEngineMode
  The engine mode for barcode scanning.
BufferLoadMode
  Image Ref Buffer Load Mode.
CharacterEncoding
  Enumerates character encodings.
CommonFieldType
  Common field types.
EncodingFormat
  Image Encoding Format.
EncryptionMode
  Encryption/Decryption mode to be used when an image is loaded/saved.
FieldDataFormat
  Type of parsing applied to field.
FieldValidationStatus
  Field validation status.
Gs1Handling
  GS1 message handling options. The GS1 standard defines a key-value format for business-centric data that can be encoded into many 1D and 2D barcode types. https://ref.gs1.org/standards/genspecs/
ImageFormat
ImageRotation
  Image rotation.
ImageSourceType
  The type of source which originated the underlying image.
MsiPlesseyChecksumAlgorithm
  Checksum algorithm for MSI_PLESSEY.
PathLoadMode
  Image Ref Path Load Mode.
UpcEanExtensionBehavior
  Behavior when scanning UPC/EAN barcodes with EAN-2 or EAN-5 extensions.

## Extensions

GenericDocumentExtension on GenericDocument
  Extension function to GenericDocument to make it easier to access fields.

## Functions

autorelease<R>(R computation()) → R

## Typedefs

AcquireSerializedReference = bool Function(Pointer<Utf8> uuid)
AcquireSerializedReferenceNative = Bool Function(Pointer<Utf8> uuid)
BufferData = Pointer<Uint8> Function(Pointer<Opaque> buffer)
BufferDataNative = Pointer<Uint8> Function(Pointer<Opaque> buffer)
BufferSize = int Function(Pointer<Opaque> buffer)
BufferSizeNative = Int Function(Pointer<Opaque> buffer)
Clear = void Function(Pointer<Utf8> uuid)
ClearNative = Void Function(Pointer<Utf8> uuid)
Clone = Pointer<Utf8> Function(Pointer<Utf8> uuid)
CloneNative = Pointer<Utf8> Function(Pointer<Utf8> uuid)
CreateFromEncodedBuffer = Pointer<Utf8> Function(Pointer<Uint8> data, int size, Pointer<CBufferImageLoadOptions> options)
CreateFromEncodedBufferNative = Pointer<Utf8> Function(Pointer<Uint8> data, Int size, Pointer<CBufferImageLoadOptions> options)
CreateFromPath = Pointer<Utf8> Function(Pointer<Utf8> path, Pointer<CPathImageLoadOptions> options)
CreateFromPathNative = Pointer<Utf8> Function(Pointer<Utf8> path, Pointer<CPathImageLoadOptions> options)
EncodeImage = Pointer<Opaque> Function(Pointer<Utf8> uuid, Pointer<CEncodeImageOptions> options)
EncodeImageNative = Pointer<Opaque> Function(Pointer<Utf8> uuid, Pointer<CEncodeImageOptions> options)
FreeBuffer = void Function(Pointer<Opaque> buffer)
FreeBufferNative = Void Function(Pointer<Opaque> buffer)
FreeString = void Function(Pointer<Utf8> str)
FreeStringNative = Void Function(Pointer<Utf8> str)
Hibernate = void Function(Pointer<Utf8> uuid)
HibernateNative = Void Function(Pointer<Utf8> uuid)
Info = CImageInfo Function(Pointer<Utf8> uuid)
InfoNative = CImageInfo Function(Pointer<Utf8> uuid)
ReleaseAllImages = void Function()
ReleaseAllImagesNative = Void Function()
ReleaseStrongReference = bool Function(Pointer<Utf8> uuid)
ReleaseStrongReferenceNative = Bool Function(Pointer<Utf8> uuid)
SaveImage = bool Function(Pointer<Utf8> uuid, Pointer<Utf8> path, Pointer<CSaveImageOptions> options)
SaveImageNative = Bool Function(Pointer<Utf8> uuid, Pointer<Utf8> path, Pointer<CSaveImageOptions> options)
UpgradeSerializedReference = bool Function(Pointer<Utf8> uuid)
UpgradeSerializedReferenceNative = Bool Function(Pointer<Utf8> uuid)