@scandit/web-datacapture-core 7.6.0 → 8.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/build/electron/main.cjs +1 -1
  2. package/build/electron/main.js +1 -1
  3. package/build/electron/preload.cjs +1 -1
  4. package/build/electron/preload.js +1 -1
  5. package/build/js/AimerViewfinder.js +1 -1
  6. package/build/js/Brush.js +1 -1
  7. package/build/js/Camera-CZ0Hl7v2.d.ts +213 -0
  8. package/build/js/Camera.d.ts +2 -20
  9. package/build/js/Camera.js +1 -1
  10. package/build/js/CameraRelated.d.ts +2 -20
  11. package/build/js/CameraRelated.js +1 -1
  12. package/build/js/{Camera-Bpnu6h9d.d.ts → DataCaptureContext-1YWunZAJ.d.ts} +628 -922
  13. package/build/js/DataCaptureContext.d.ts +10 -6
  14. package/build/js/DataCaptureContext.js +1 -1
  15. package/build/js/DataCaptureContextRelated.d.ts +11 -7
  16. package/build/js/DataCaptureVersion.js +1 -1
  17. package/build/js/DataCaptureView.d.ts +10 -6
  18. package/build/js/DataCaptureView.js +1 -1
  19. package/build/js/Defaults.d.ts +2 -19
  20. package/build/js/Defaults.js +1 -1
  21. package/build/js/Feedback.js +1 -1
  22. package/build/js/FrameData.d.ts +11 -7
  23. package/build/js/ImageFrameSource.d.ts +2 -20
  24. package/build/js/ImageFrameSource.js +1 -1
  25. package/build/js/LaserlineViewfinder.js +1 -1
  26. package/build/js/NotificationPresenter/index.d.ts +9 -5
  27. package/build/js/NotificationPresenter/private/ConcreteNotificationPresenter.d.ts +12 -8
  28. package/build/js/NotificationPresenter/private/presets.d.ts +12 -8
  29. package/build/js/RectangularViewfinder.js +1 -1
  30. package/build/js/ScanditIcon.js +1 -1
  31. package/build/js/ScanditIconBuilder.js +1 -1
  32. package/build/js/SingleImageUploader.d.ts +2 -20
  33. package/build/js/SingleImageUploader.js +1 -1
  34. package/build/js/SingleImageUploaderSettings.js +1 -1
  35. package/build/js/Sound.js +1 -1
  36. package/build/js/Vibration.js +1 -1
  37. package/build/js/browserHelper.js +1 -1
  38. package/build/js/chunks/{chunk-7ELPJFJV.js → chunk-25EQ6RFI.js} +1 -1
  39. package/build/js/chunks/chunk-2LSO6JEZ.js +1 -0
  40. package/build/js/chunks/{chunk-6NVWG2LP.js → chunk-36CF5U7R.js} +1 -1
  41. package/build/js/chunks/{chunk-GC2ECHKL.js → chunk-3KWRROUJ.js} +1 -1
  42. package/build/js/chunks/chunk-4GKVQAVF.js +1 -0
  43. package/build/js/chunks/{chunk-VW3DMTE7.js → chunk-4Y7Q64OZ.js} +1 -1
  44. package/build/js/chunks/{chunk-ZE2WH3AH.js → chunk-4ZAHOKYN.js} +1 -1
  45. package/build/js/chunks/{chunk-L7TY4UEP.js → chunk-56CY5YB3.js} +1 -1
  46. package/build/js/chunks/{chunk-S24T6WS2.js → chunk-5JAPQHXF.js} +1 -1
  47. package/build/js/chunks/{chunk-7TQID6JJ.js → chunk-5N4CQMMU.js} +1 -1
  48. package/build/js/chunks/chunk-627VMN74.js +1 -0
  49. package/build/js/chunks/chunk-6HH3HY5J.js +6 -0
  50. package/build/js/chunks/chunk-AUONPF3B.js +1 -0
  51. package/build/js/chunks/chunk-BRS5WVNO.js +1 -0
  52. package/build/js/chunks/chunk-BSIP2HDE.js +1 -0
  53. package/build/js/chunks/{chunk-N2GWO3EX.js → chunk-BXINLCBT.js} +1 -1
  54. package/build/js/chunks/chunk-CJOGOTBU.js +1 -0
  55. package/build/js/chunks/{chunk-VGSPU525.js → chunk-CXR3G5KR.js} +1 -1
  56. package/build/js/chunks/{chunk-U7Z5PR2O.js → chunk-D5RWW3H4.js} +1 -1
  57. package/build/js/chunks/chunk-DPJEOND4.js +1 -0
  58. package/build/js/chunks/chunk-EQ6V4W5K.js +1 -0
  59. package/build/js/chunks/chunk-F2IJCZAS.js +1 -0
  60. package/build/js/chunks/chunk-GJGNNO4O.js +1 -0
  61. package/build/js/chunks/{chunk-PUP3NNKU.js → chunk-HLJPVZHK.js} +1 -1
  62. package/build/js/chunks/chunk-IBDUCVB4.js +1 -0
  63. package/build/js/chunks/{chunk-26DQPDMK.js → chunk-K5B6J4SK.js} +1 -1
  64. package/build/js/chunks/chunk-KMGMYFZI.js +1 -0
  65. package/build/js/chunks/chunk-L674VY5B.js +1 -0
  66. package/build/js/chunks/chunk-LFJUGRQV.js +1 -0
  67. package/build/js/chunks/chunk-LH2NI5UL.js +2 -0
  68. package/build/js/chunks/chunk-LMYUYJ3O.js +1 -0
  69. package/build/js/chunks/{chunk-4TDWWHP2.js → chunk-LOV5GR63.js} +1 -1
  70. package/build/js/chunks/chunk-LYSTK36S.js +1 -0
  71. package/build/js/chunks/{chunk-KXSW5F3G.js → chunk-O3GEDPJS.js} +1 -1
  72. package/build/js/chunks/chunk-O6PTTJES.js +1 -0
  73. package/build/js/chunks/chunk-PXPLMVCF.js +1 -0
  74. package/build/js/chunks/chunk-SJ3K5O2N.js +1 -0
  75. package/build/js/chunks/{chunk-UCD6YLP3.js → chunk-SJOZM6AL.js} +1 -1
  76. package/build/js/chunks/{chunk-LISC6VSM.js → chunk-TAUJTFZC.js} +1 -1
  77. package/build/js/chunks/{chunk-SJJGHQ52.js → chunk-TH7Z32LP.js} +1 -1
  78. package/build/js/chunks/{chunk-2HL2IEE2.js → chunk-TOR7V7M7.js} +1 -1
  79. package/build/js/chunks/{chunk-H75G3H4R.js → chunk-TQ6K3P2B.js} +1 -1
  80. package/build/js/chunks/{chunk-5S5BT5PK.js → chunk-TZ6TWPJD.js} +1 -1
  81. package/build/js/chunks/{chunk-HJXLUUA6.js → chunk-UQJHBITP.js} +2 -2
  82. package/build/js/chunks/chunk-UWBNF47P.js +1 -0
  83. package/build/js/chunks/chunk-XZO7D4BC.js +1 -0
  84. package/build/js/chunks/chunk-YNHLZS7P.js +1 -0
  85. package/build/js/chunks/chunk-YRQ34YNY.js +1 -0
  86. package/build/js/chunks/chunk-ZEBGTTCX.js +1 -0
  87. package/build/js/chunks/{chunk-XEBHIXET.js → chunk-ZNO7QV4M.js} +1 -1
  88. package/build/js/global.d.d.ts +1 -1
  89. package/build/js/index.d.ts +18 -39
  90. package/build/js/index.js +1 -4
  91. package/build/js/{CameraAccess.d.ts → moduleLoader.d.ts} +12 -8
  92. package/build/js/moduleLoader.js +0 -0
  93. package/build/js/private/CameraAccess.d.ts +167 -21
  94. package/build/js/private/CameraAccess.js +1 -1
  95. package/build/js/private/CameraManager.d.ts +12 -8
  96. package/build/js/private/CameraManager.js +1 -1
  97. package/build/js/private/CameraPool.d.ts +88 -0
  98. package/build/js/private/CameraPool.js +1 -0
  99. package/build/js/private/CanvasDrawerWithMetrics.d.ts +9 -5
  100. package/build/js/private/CoreModuleLicenseTextProvider.d.ts +13 -10
  101. package/build/js/private/CoreModuleLicenseTextProvider.js +1 -1
  102. package/build/js/private/CustomLocationsView.js +1 -1
  103. package/build/js/private/DataCaptureContextRelated.d.ts +12 -8
  104. package/build/js/private/FrameReaders/FrameReader.d.ts +12 -8
  105. package/build/js/private/FrameReaders/FrameReaderAbstract.d.ts +10 -6
  106. package/build/js/private/FrameReaders/GrayScaleFrameReader.d.ts +10 -6
  107. package/build/js/private/FrameReaders/index.d.ts +12 -8
  108. package/build/js/private/GestureRecognizer/GestureRecognizer.js +1 -1
  109. package/build/js/private/GestureRecognizer/PointerEventsDetector.js +1 -1
  110. package/build/js/private/GestureRecognizer/index.js +1 -1
  111. package/build/js/private/{NormalizedConfigureOptions.d.ts → NormalizedModuleLoaderOptions.d.ts} +12 -35
  112. package/build/js/private/NormalizedModuleLoaderOptions.js +0 -0
  113. package/build/js/private/ViewControls+related.js +1 -1
  114. package/build/js/private/ViewControls_related.d.ts +13 -13
  115. package/build/js/private/ViewsRegistry.d.ts +12 -8
  116. package/build/js/private/hybridDesktopPlatformHelpers.js +1 -1
  117. package/build/js/private/multithreadSimdHelper.js +1 -1
  118. package/build/js/private/privateAccess.d.ts +8 -0
  119. package/build/js/private/privateAccess.js +1 -0
  120. package/build/js/private/ui/atoms/AimerSvgIcon.js +1 -10
  121. package/build/js/private/ui/atoms/ArrowDownSvgIcon.js +2 -21
  122. package/build/js/private/ui/atoms/ArrowLeftSvgIcon.js +2 -21
  123. package/build/js/private/ui/atoms/ArrowRightSvgIcon.js +2 -21
  124. package/build/js/private/ui/atoms/ArrowUpSvgIcon.js +2 -21
  125. package/build/js/private/ui/atoms/ArrowsUp.js +1 -1
  126. package/build/js/private/ui/atoms/Backdrop.js +1 -1
  127. package/build/js/private/ui/atoms/CalendarExclamationMarkSvgIcon.js +1 -19
  128. package/build/js/private/ui/atoms/CameraSwitchReverseSvgIcon.js +1 -27
  129. package/build/js/private/ui/atoms/CameraSwitchSvgIcon.js +1 -27
  130. package/build/js/private/ui/atoms/Card.d.ts +2 -0
  131. package/build/js/private/ui/atoms/Card.js +1 -1
  132. package/build/js/private/ui/atoms/CardList.js +1 -1
  133. package/build/js/private/ui/atoms/CheckSvgIcon.js +1 -15
  134. package/build/js/private/ui/atoms/ChevronDownSvgIcon.js +2 -21
  135. package/build/js/private/ui/atoms/ChevronLeftSvgIcon.js +2 -21
  136. package/build/js/private/ui/atoms/ChevronRightSvgIcon.js +2 -20
  137. package/build/js/private/ui/atoms/ChevronUpSvgIcon.js +2 -21
  138. package/build/js/private/ui/atoms/CrossSvgIcon.js +1 -12
  139. package/build/js/private/ui/atoms/Dot5xSvgIcon.js +1 -21
  140. package/build/js/private/ui/atoms/ExclamationMarkSvgIcon.js +1 -11
  141. package/build/js/private/ui/atoms/GlassSvgIcon.js +1 -15
  142. package/build/js/private/ui/atoms/HandLensCheckSvgIcon.js +1 -16
  143. package/build/js/private/ui/atoms/KeyboardSvgIcon.js +1 -10
  144. package/build/js/private/ui/atoms/LowStockSvgIcon.js +1 -12
  145. package/build/js/private/ui/atoms/OnexSvgIcon.js +1 -13
  146. package/build/js/private/ui/atoms/PrinterSvgIcon.js +2 -24
  147. package/build/js/private/ui/atoms/ProgressBar.js +1 -1
  148. package/build/js/private/ui/atoms/QuestionMarkSvgIcon.js +1 -13
  149. package/build/js/private/ui/atoms/RestartSvgIcon.js +1 -11
  150. package/build/js/private/ui/atoms/RoundedCheckSvgIcon.js +1 -1
  151. package/build/js/private/ui/atoms/RoundedCrossSvgIcon.js +1 -11
  152. package/build/js/private/ui/atoms/RoundedExclamationMarkSvgIcon.js +1 -1
  153. package/build/js/private/ui/atoms/ShutterButton.js +1 -22
  154. package/build/js/private/ui/atoms/StarFilledSvgIcon.js +1 -13
  155. package/build/js/private/ui/atoms/StarHalfFilledSvgIcon.js +2 -32
  156. package/build/js/private/ui/atoms/StarOutlinedSvgIcon.js +1 -13
  157. package/build/js/private/ui/atoms/SvgIcon.js +1 -1
  158. package/build/js/private/ui/atoms/ToPickSvgIcon.js +1 -12
  159. package/build/js/private/ui/atoms/Toast.d.ts +9 -5
  160. package/build/js/private/ui/atoms/Toast.js +1 -1
  161. package/build/js/private/ui/atoms/TwoxSvgIcon.js +1 -14
  162. package/build/js/private/ui/atoms/WrongItemSvgIcon.js +1 -15
  163. package/build/js/private/ui/molecules/HintPresenter.d.ts +9 -5
  164. package/build/js/private/ui/molecules/HintPresenter.js +1 -1
  165. package/build/js/private/ui/molecules/LoadingOverlay.js +1 -1
  166. package/build/js/private/utils/AnimationSimplePolyfill.js +1 -1
  167. package/build/js/private/utils/AsyncStateMachine.d.ts +37 -0
  168. package/build/js/private/utils/AsyncStateMachine.js +1 -0
  169. package/build/js/private/utils/domIdFromValues.d.ts +18 -0
  170. package/build/js/private/utils/domIdFromValues.js +1 -0
  171. package/build/js/private/utils/html.d.ts +57 -1
  172. package/build/js/private/utils/html.js +1 -1
  173. package/build/js/private/utils/index.d.ts +3 -1
  174. package/build/js/private/utils/index.js +1 -1
  175. package/build/js/private/utils/polyfillLoader.js +1 -1
  176. package/build/js/private/utils/replaceImagesInViewUtils.d.ts +9 -5
  177. package/build/js/private/utils/safeCancelAnimation.js +1 -1
  178. package/build/js/private/utils/safeStorage.js +1 -1
  179. package/build/js/private/utils/warnMultithreadingUnavailable.js +1 -1
  180. package/build/js/tsHelper.d.ts +1 -1
  181. package/build/js/worker/WorkerMain.d.ts +13 -8
  182. package/build/js/worker/WorkerMain.js +1 -1
  183. package/build/js/worker/coreCapture.inlineWorker.d.ts +12 -8
  184. package/build/js/worker/coreCapture.inlineWorker.js +1 -1
  185. package/build/js/worker/dataCaptureEngine.d.ts +10 -6
  186. package/build/js/worker/dataCaptureEngine.js +1 -1
  187. package/build/js/worker/dataCaptureLoader.d.ts +10 -6
  188. package/build/js/worker/dataCaptureLoader.js +1 -1
  189. package/build/js/worker/dataCaptureWorkerRelated.d.ts +10 -6
  190. package/build/js/worker/dataCaptureWorkerRelated.js +1 -1
  191. package/build/js/worker/helperFs.js +1 -1
  192. package/build/js/worker/index.d.ts +12 -8
  193. package/build/js/worker/index.js +1 -1
  194. package/package.json +1 -1
  195. package/build/js/CameraAccess.js +0 -1
  196. package/build/js/chunks/chunk-27Z5CYJL.js +0 -1
  197. package/build/js/chunks/chunk-2QT7PJFA.js +0 -15
  198. package/build/js/chunks/chunk-33ZLQAZS.js +0 -5
  199. package/build/js/chunks/chunk-34HLD6AY.js +0 -2
  200. package/build/js/chunks/chunk-42THCP2K.js +0 -1
  201. package/build/js/chunks/chunk-4XTOUXDD.js +0 -1
  202. package/build/js/chunks/chunk-AJE43LJ5.js +0 -3
  203. package/build/js/chunks/chunk-AUWF33RB.js +0 -2
  204. package/build/js/chunks/chunk-BS7MAI4E.js +0 -1
  205. package/build/js/chunks/chunk-DFFYK2ZZ.js +0 -1
  206. package/build/js/chunks/chunk-ESVB4WW6.js +0 -1
  207. package/build/js/chunks/chunk-GYQMVT7L.js +0 -1
  208. package/build/js/chunks/chunk-IGJQFAQU.js +0 -1
  209. package/build/js/chunks/chunk-JBX2RBUT.js +0 -1
  210. package/build/js/chunks/chunk-L3BBOGIY.js +0 -4
  211. package/build/js/chunks/chunk-MU6SADSF.js +0 -1
  212. package/build/js/chunks/chunk-NKCR7VPO.js +0 -1
  213. package/build/js/chunks/chunk-OARD7KIC.js +0 -11
  214. package/build/js/chunks/chunk-OQ4XCKFQ.js +0 -1
  215. package/build/js/chunks/chunk-Q5DQ3FTE.js +0 -1
  216. package/build/js/chunks/chunk-QR3AOFAD.js +0 -5
  217. package/build/js/chunks/chunk-QUHRBS4G.js +0 -15
  218. package/build/js/chunks/chunk-R3XUWVHG.js +0 -6
  219. package/build/js/chunks/chunk-SFJIWITJ.js +0 -1
  220. package/build/js/chunks/chunk-SM5S3DDC.js +0 -1
  221. package/build/js/chunks/chunk-VT73QNQB.js +0 -22
  222. package/build/js/sdk.d.ts +0 -52
  223. package/build/js/sdk.js +0 -1
  224. package/build/js/worker/finalizationRegistryPolyfill.test.d.ts +0 -1
  225. package/build/js/worker/finalizationRegistryPolyfill.test.js +0 -1
  226. /package/build/js/chunks/{chunk-4OWLOWVE.js → chunk-JCKM5IJO.js} +0 -0
  227. /package/build/js/{private/NormalizedConfigureOptions.js → chunks/chunk-XLRKXFUR.js} +0 -0
@@ -1,337 +1,25 @@
1
1
  /// <reference types="emscripten" />
2
- import { Serializable } from './private/Serializable.js';
3
- import { MarginsWithUnitJSON, PointWithUnitJSON, Anchor, MarginsWithUnit, PointWithUnit, Size, Orientation, Point, Quadrilateral, JSONType, PointJSON, RectJSON, Rect } from './Common.js';
4
- import { WatermarkStack } from './private/FrameReaders/WatermarkStack.js';
5
- import { Optional, MethodSignature } from './tsHelper.js';
6
- import { ScanditIcon } from './ScanditIcon.js';
7
- import { ScanditHTMLElement } from './private/utils/ScanditHTMLElement.js';
2
+ import { g as Camera, l as CameraSettings, C as CameraPosition, b as FrameSource, e as FrameSourceJSON } from './Camera-CZ0Hl7v2.js';
3
+ import { MarginsWithUnitJSON, PointWithUnitJSON, Anchor, MarginsWithUnit, PointWithUnit, Size, Orientation, Point, Quadrilateral, PointJSON, RectJSON, Rect, JSONType } from './Common.js';
8
4
  import { DataCaptureContextSettingsJSON, DataCaptureContextSettings } from './DataCaptureContextSettings.js';
9
5
  import { LogoStyle, FocusGestureJSON, ZoomGestureJSON, FocusGesture, ZoomGesture } from './DataCaptureViewPlusRelated.js';
10
6
  import { NotificationPresenter } from './NotificationPresenter/NotificationPresenter.js';
11
7
  import { Control } from './ViewControls.js';
12
8
  import { DidTapCustomLocationsViewListener, StateToRender, StateToRenderDomView } from './private/CustomLocationsView.js';
9
+ import { Serializable } from './private/Serializable.js';
13
10
  import { nativeHandle } from './private/nativeHandle.js';
14
11
  import { AnchorPositions } from './private/AnchorPositions.js';
15
12
  import { OpenSourceSoftwareLicenseInfo } from './license/OpenSourceSoftwareLicenseInfo.js';
16
- import { HTMLElementStateJSON } from './private/HtmlElementState.js';
17
- import { OverrideState } from './worker/OverrideState.js';
18
13
  import { Logger } from './logger.js';
14
+ import { WatermarkStack } from './private/FrameReaders/WatermarkStack.js';
15
+ import { Optional, MethodSignature } from './tsHelper.js';
16
+ import { DeviceCamera } from './private/CameraAccess.js';
19
17
  import { ProgressInfo } from './LoadingStatus.js';
20
-
21
- declare enum CameraPosition$1 {
22
- WorldFacing = "worldFacing",
23
- UserFacing = "userFacing"
24
- }
25
- declare enum CameraResolutionConstraint$1 {
26
- ULTRA_HD = 0,
27
- FULL_HD = 1,
28
- HD = 2,
29
- SD = 3,
30
- NONE = 4
31
- }
32
- declare enum AspectRatio {
33
- AUTO = "auto",
34
- FOUR_TO_THREE = "fourToThree",
35
- SIXTEEN_TO_NINE = "sixteenToNine"
36
- }
37
- interface DeviceCamera$1 {
38
- position: CameraPosition$1;
39
- label: string;
40
- deviceId: string;
41
- currentResolution?: VideoFrameResolution;
42
- }
43
- /**
44
- * A helper object to interact with cameras.
45
- */
46
- declare namespace CameraAccess$1 {
47
- /**
48
- * Overrides for main camera for a given camera position on a desktop/laptop device, set when accessing an initial camera.
49
- */
50
- const mainCameraForPositionOverridesOnDesktop: Map<CameraPosition$1, DeviceCamera$1>;
51
- /**
52
- *
53
- * To be accessed directly only for tests.
54
- *
55
- * The mapping from deviceIds to camera objects.
56
- */
57
- const deviceIdToCameraObjects: Map<string, DeviceCamera$1>;
58
- /**
59
- *
60
- * To be accessed directly only for tests.
61
- *
62
- * The list of inaccessible deviceIds.
63
- */
64
- const inaccessibleDeviceIds: Set<string>;
65
- function setMainCameraForPositionOverridesOnDesktop(cameraPosition: CameraPosition$1, deviceCamera: DeviceCamera$1): void;
66
- /**
67
- * used mainly for testing
68
- */
69
- function clearMainCameraForPositionOverridesOnDesktop(): void;
70
- /**
71
- *
72
- * @param label The camera label.
73
- * @returns Whether the label identifies the camera being the iOS front (main) camera one.
74
- */
75
- function isIOSFrontCameraLabel(label: string): boolean;
76
- /**
77
- *
78
- * @param label The camera label.
79
- * @returns Whether the label identifies the camera being the iOS back (main) camera one.
80
- */
81
- function isIOSBackCameraLabel(label: string): boolean;
82
- /**
83
- *
84
- * @param label The camera label.
85
- * @returns Whether the label identifies the camera being the iOS Back Dual camera one.
86
- */
87
- function isIOSBackDualWideCameraLabel(label: string): boolean;
88
- /**
89
- *
90
- * @param label The camera label.
91
- * @returns Whether the label identifies the camera being the iOS UltraWide back camera one.
92
- */
93
- function isIOSUltraWideBackCameraLabel(label: string): boolean;
94
- /**
95
- *
96
- * Get the main camera for the given camera position.
97
- *
98
- * @param cameras The array of available [[DeviceCamera]] objects.
99
- * @param cameraPosition The wanted camera position.
100
- * @returns The main camera matching the wanted camera position.
101
- */
102
- function getMainCameraForPosition(cameras: DeviceCamera$1[], cameraPosition: CameraPosition$1): DeviceCamera$1 | undefined;
103
- /**
104
- *
105
- * Sort the given cameras in order of priority of access based on the given camera position.
106
- *
107
- * @param cameras The array of available [[DeviceCamera]] objects.
108
- * @param cameraPosition The preferred camera position.
109
- * @returns The sorted cameras.
110
- */
111
- function sortCamerasForCameraPosition<DeviceCameraLike extends DeviceCamera$1 = DeviceCamera$1>(cameras: DeviceCameraLike[], cameraPosition: CameraPosition$1): DeviceCameraLike[];
112
- /**
113
- *
114
- * Adjusts the camera's information based on the given currently active video stream.
115
- *
116
- * @param mediaStream The currently active `MediaStream` object.
117
- * @param camera The currently active [[Camera]] object associated with the video stream.
118
- */
119
- function adjustCameraFromMediaStream(mediaStream: MediaStream, camera: DeviceCamera$1): void;
120
- /**
121
- * Get a list of cameras (if any) available on the device, a camera access permission is requested to the user
122
- * the first time this method is called if needed.
123
- *
124
- * If the user denies the necessary camera access permission, a list of cameras with the correct amount of devices is
125
- * returned in any case, but the cameras will have no available (empty) label and deviceId and can thus not be
126
- * accessed.
127
- *
128
- * If the browser is incompatible the returned promise is rejected with a `UnsupportedBrowserError` error.
129
- *
130
- * When refreshing available devices, if updated deviceId information is detected, cameras' deviceId are updated
131
- * accordingly. This could happen after a camera access and stop in some situations.
132
- *
133
- * @param refreshDevices Force a call to refresh available video devices even when information is already available.
134
- * @param cameraAlreadyAccessed Hint that a camera has already been accessed before, avoiding a possible initial
135
- * camera access permission request on the first call, in cases this cannot be already reliably detected.
136
- * @returns A promise resolving to the array of available [[Camera]] objects (could be empty).
137
- */
138
- function getCameras(refreshDevices?: boolean, cameraAlreadyAccessed?: boolean): Promise<DeviceCamera$1[]>;
139
- /**
140
- *
141
- * Get the *getUserMedia* *video* parameters to be used given a resolution fallback level and the browser used.
142
- *
143
- * @param cameraResolutionConstraint The resolution constraint.
144
- * @returns The resulting *getUserMedia* *video* parameters.
145
- */
146
- function getUserMediaVideoParameters(cameraResolutionConstraint: CameraResolutionConstraint$1, preferredAspectRatio?: AspectRatio): MediaTrackConstraints;
147
- /**
148
- *
149
- * Mark a camera to be inaccessible and thus excluded from the camera list returned by [[getCameras]].
150
- *
151
- * @param camera The camera to mark to be inaccessible.
152
- */
153
- function markCameraAsInaccessible(camera: DeviceCamera$1): void;
154
- /**
155
- *
156
- * Try to access a given camera for video input at the given resolution level.
157
- *
158
- * If a camera is inaccessible because of errors, then it's added to the inaccessible device list. If the specific
159
- * error is of type `OverconstrainedError` or `NotReadableError` however, this procedure is done later on via a
160
- * separate external logic; also, in case of an error of type `NotAllowedError` (permission denied) this procedure is
161
- * not executed, in order to possibly recover if and when the user allows the camera to be accessed again.
162
- * This is done to allow checking if the camera can still be accessed via an updated deviceId when deviceId
163
- * information changes, or if it should then be confirmed to be considered inaccessible.
164
- *
165
- * Depending on parameters, device features and user permissions for camera access, any of the following errors
166
- * could be the rejected result of the returned promise:
167
- * - `AbortError`
168
- * - `NotAllowedError`
169
- * - `NotFoundError`
170
- * - `NotReadableError`
171
- * - `SecurityError`
172
- * - `OverconstrainedError`
173
- *
174
- * @param cameraResolutionConstraint The resolution constraint.
175
- * @param camera The camera to try to access for video input.
176
- * @returns A promise resolving to the `MediaStream` object coming from the accessed camera.
177
- */
178
- function accessCameraStream(camera: DeviceCamera$1, cameraResolutionConstraint: CameraResolutionConstraint$1, preferredAspectRatio?: AspectRatio): Promise<MediaStream>;
179
- }
180
-
181
- /**
182
- * these are the public exports from CameraAccess
183
- */
184
- declare namespace CameraAccess {
185
- function getCameras(refreshDevices?: boolean, cameraAlreadyAccessed?: boolean): Promise<DeviceCamera[]>;
186
- }
187
- interface DeviceCamera {
188
- position: CameraPosition$1;
189
- label: string;
190
- deviceId: string;
191
- }
192
-
193
- declare enum FrameSourceState {
194
- On = "on",
195
- Off = "off",
196
- Standby = "standby",
197
- Starting = "starting",
198
- Stopping = "stopping",
199
- BootingUp = "bootingUp",
200
- WakingUp = "wakingUp",
201
- GoingToSleep = "goingToSleep",
202
- ShuttingDown = "shuttingDown"
203
- }
204
- declare enum TorchState {
205
- On = "on",
206
- Off = "off"
207
- }
208
- declare enum CameraPosition {
209
- WorldFacing = "worldFacing",
210
- UserFacing = "userFacing"
211
- }
212
- declare enum VideoResolution {
213
- Auto = "auto",
214
- HD = "hd",
215
- FullHD = "fullHd",
216
- UHD4K = "uhd4k"
217
- }
218
- declare enum FocusGestureStrategy {
219
- None = "none",
220
- Manual = "manual",
221
- ManualUntilCapture = "manualUntilCapture",
222
- AutoOnLocation = "autoOnLocation"
223
- }
224
- interface FrameSourceListener {
225
- didChangeState?: (frameSource: FrameSource, newState: FrameSourceState) => void;
226
- }
227
- interface FrameSourceJSON {
228
- type: string;
229
- }
230
- interface FrameSource extends Serializable<FrameSourceJSON> {
231
- readonly desiredState: FrameSourceState;
232
- getCurrentState: () => FrameSourceState;
233
- switchToDesiredState: (desiredState: FrameSourceState) => Promise<void>;
234
- addListener: (listener: FrameSourceListener) => void;
235
- removeListener: (listener: FrameSourceListener) => void;
236
- }
237
- interface CameraSettingsJSONBase {
238
- preferredResolution: string;
239
- zoomFactor: number;
240
- zoomGestureZoomFactor: number;
241
- api?: number;
242
- }
243
- interface CameraSettingsFromJSON extends CameraSettingsJSONBase {
244
- focusGestureStrategy: string;
245
- }
246
- interface CameraSettingsJSON extends CameraSettingsJSONBase {
247
- focus: {
248
- focusGestureStrategy: string;
249
- [key: string]: any;
250
- };
251
- [key: string]: any;
252
- }
253
- declare function isCameraFrameSource(frameSource?: FrameSource | null): frameSource is Camera;
254
- declare class CameraSettings implements Serializable<CameraSettingsJSON> {
255
- preferredResolution: VideoResolution;
256
- zoomFactor: number;
257
- zoomGestureZoomFactor: number;
258
- private focus;
259
- get focusGestureStrategy(): FocusGestureStrategy;
260
- set focusGestureStrategy(newStrategy: FocusGestureStrategy);
261
- private static fromJSON;
262
- constructor();
263
- constructor(settings: CameraSettings);
264
- setProperty(name: string, value: any): void;
265
- getProperty(name: string): any;
266
- /**
267
- * The resulting JSON must also contain properties set on the object itself ("hidden" properties)
268
- */
269
- toJSONObject(): CameraSettingsJSON & Record<string, any>;
270
- }
271
-
272
- interface PoolCapacityOptions {
273
- minPoolCapacity: number;
274
- maxPoolCapacity: number;
275
- }
276
- declare abstract class FrameReaderAbstract {
277
- colorType: ColorType;
278
- protected readonly _contextWebGL: WebGLRenderingContext;
279
- protected readonly _maxPoolCapacity: number;
280
- protected readonly _minPoolCapacity: number;
281
- /**
282
- * In mobile applications, particularly on Android, capturing frames at a slow rate can be a common issue,
283
- * especially in scenarios involving barcode tracking. Using a stack becomes valuable in such situations
284
- * because it allows us to capture next frame with pixel data while the engine is still processing the previous one,
285
- * eliminating the need to wait for the engine to finish before capturing the next frame.
286
- */
287
- protected _framePool: Optional<WatermarkStack<Uint8ClampedArray>>;
288
- constructor(contextWebGL: WebGLRenderingContext, options?: PoolCapacityOptions | undefined);
289
- abstract readFromSource(source: TexImageSource): FrameCapture;
290
- abstract setup(): void;
291
- recycle(pixelsData: Uint8ClampedArray): void;
292
- abstract dispose(): void;
293
- }
294
-
295
- declare enum ColorType {
296
- RGBA = "RGBA",
297
- GRAYSCALE = "GRAYSCALE"
298
- }
299
- declare class FrameReader extends FrameReaderAbstract {
300
- colorType: ColorType;
301
- private _framebuffer;
302
- private _texture;
303
- private _frameSize;
304
- private get _initialized();
305
- readFromSource(source: TexImageSource): FrameCapture;
306
- setup(): void;
307
- dispose(): void;
308
- private updateFrameSizeIfNeeded;
309
- }
310
-
311
- interface DataCaptureContextListener {
312
- didChangeStatus?: (context: DataCaptureContext$1, contextStatus: ContextStatus) => void;
313
- didStartObservingContext?: (context: DataCaptureContext$1) => void;
314
- didChangeFrameSource?: (context: DataCaptureContext$1, frameSource: FrameSource | null) => void;
315
- }
316
- interface ContextStatusJSON {
317
- code: number;
318
- isValid: boolean;
319
- message: string;
320
- }
321
- declare class ContextStatus {
322
- private _message;
323
- private _code;
324
- private _isValid;
325
- private static fromJSON;
326
- get message(): string;
327
- get code(): number;
328
- get isValid(): boolean;
329
- }
330
- declare enum PrivateMirrorAxis {
331
- None = "None",
332
- X = "X",
333
- Y = "Y"
334
- }
18
+ import { OverrideState } from './worker/OverrideState.js';
19
+ import { ScanditIcon } from './ScanditIcon.js';
20
+ import { ScanditHTMLElement } from './private/utils/ScanditHTMLElement.js';
21
+ import { HTMLElementStateJSON } from './private/HtmlElementState.js';
22
+ import { AsyncStateMachine } from './private/utils/AsyncStateMachine.js';
335
23
 
336
24
  interface DataCaptureOverlay extends Serializable {
337
25
  [nativeHandle]?: {
@@ -426,13 +114,13 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
426
114
  * The current context as a PrivateDataCaptureContext
427
115
  */
428
116
  private get privateContext();
429
- static forContext(context: DataCaptureContext$1 | null): Promise<DataCaptureView$1>;
117
+ static forContext(context: DataCaptureContext | null): Promise<DataCaptureView$1>;
430
118
  showProgressBar(): void;
431
119
  hideProgressBar(): void;
432
120
  setProgressBarPercentage(percentage: number | null): void;
433
121
  setProgressBarMessage(message: string): void;
434
- getContext(): DataCaptureContext$1 | null;
435
- setContext(context: DataCaptureContext$1 | null): Promise<void>;
122
+ getContext(): DataCaptureContext | null;
123
+ setContext(context: DataCaptureContext | null): Promise<void>;
436
124
  connectToElement(element: HTMLElement, options?: DataCaptureViewConnectOptions): void;
437
125
  detachFromElement(): void;
438
126
  addOverlay(overlay: DataCaptureOverlay): Promise<void>;
@@ -490,277 +178,24 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
490
178
  private unfreezeFrame;
491
179
  }
492
180
 
493
- type CommandAndPayload<A, C> = A extends {
494
- command: C;
495
- } ? A : never;
496
- type WorkerCommandPayload<C> = Omit<CommandAndPayload<AnyDataCaptureActionMessage, C>, "command" | "id">;
497
- type WorkerListener = (event: DataCaptureCallbackMessage) => any;
498
- interface DataCaptureLoaderOptions {
499
- libraryLocation: string;
500
- verifyResponseHash: boolean;
501
- loadProgressNotifier?: (info: ProgressInfo) => void;
502
- logLevel?: Logger.Level;
503
- overrideSimdSupport: OverrideState;
504
- overrideThreadsSupport: OverrideState;
505
- highEndBlurryRecognition?: boolean;
181
+ interface FrameData {
182
+ readonly width: number;
183
+ readonly height: number;
184
+ readonly isFrameSourceMirrored: boolean;
185
+ toBlob(type?: string, quality?: number): Promise<Blob | null>;
186
+ getData(): Promise<Uint8ClampedArray | null>;
506
187
  }
188
+ type PrivateLoadableFrameData = Omit<FrameData, "getData" | "toBlob"> & {
189
+ frameId: number;
190
+ };
507
191
  /**
508
- * The DataCaptureLoader class is used by the main thread, it instantiates the worker
509
- * and sends commands to it. It represents thus the main communication channel
510
- * between the main thread and the engine running in the worker.
192
+ * Adds some function to the passed frame data object to let the user load the frame data.
511
193
  */
512
- declare class DataCaptureLoader {
513
- highEndBlurryRecognition?: boolean;
514
- protected overrideThreadsSupport: OverrideState;
515
- protected overrideSimdSupport: OverrideState;
516
- protected verifyResponseHash: boolean;
517
- protected _dataCaptureWorker?: DataCaptureWorker;
518
- protected readonly libraryLocation: string;
519
- protected workerCommandId: number;
520
- protected readonly workerTasks: Map<number, {
521
- resolve: (...arguments_: any[]) => any;
522
- reject: (...arguments_: any[]) => any;
523
- command: string;
524
- }>;
525
- protected readonly workerListeners: WorkerListener[];
526
- protected workerMessageListener: (event_: MessageEvent<DataCaptureCallbackMessage>) => void;
527
- protected constructor(options: DataCaptureLoaderOptions);
528
- get dataCaptureWorker(): DataCaptureWorker;
529
- protected get name(): string;
530
- protected get fixedWasmMemory(): number | null;
531
- static create(options: DataCaptureLoaderOptions): Promise<DataCaptureLoader>;
532
- load(): Promise<WorkerResponse<"loadLibrary">>;
533
- /**
534
- * Send a task (i.e. a command) to the worker. Every task sent has a corresponding Promise object which
535
- * gets resolved when the worker has processed the request. The tasks are identified by an id which is
536
- * sent along with the data by both sides.
537
- */
538
- workerCommand<C extends DataCaptureActionMessageKey>(command: C, payload: WorkerCommandPayload<C>, transferables?: Transferable[]): Promise<WorkerResponse<C>>;
539
- terminateDataCaptureWorker(disposeContext?: boolean): Promise<void>;
540
- addWorkerListener(listener: WorkerListener): void;
541
- removeWorkerListener(listener: WorkerListener): void;
542
- getOptions(): Pick<DataCaptureLoaderOptions, "libraryLocation" | "overrideSimdSupport" | "overrideThreadsSupport" | "verifyResponseHash">;
543
- protected onWorkerMessage(event_: MessageEvent<DataCaptureCallbackMessage>): void;
544
- }
545
-
546
- type Change = {
547
- type: "modeEnabled";
548
- newValue: boolean;
549
- } | {
550
- type: "addControl";
551
- newValue: any;
552
- } | {
553
- type: "addOverlay";
554
- newValue: any;
555
- } | {
556
- type: "cameraSettings";
557
- newValue: any;
558
- } | {
559
- type: "frameSourceState";
560
- newValue: any;
561
- } | {
562
- type: "removeControl";
563
- newValue: any;
564
- } | {
565
- type: "removeOverlay";
566
- newValue: any;
567
- } | {
568
- type: "singleImageModeUploaderSettings";
569
- newValue: any;
570
- } | {
571
- type: "torchState";
572
- newValue: any;
573
- } | {
574
- type: "viewChange";
575
- newValue: {
576
- orientation: Orientation;
577
- } & Partial<HTMLElementStateJSON>;
578
- } | {
579
- type: "viewSet";
580
- newValue: DataCaptureView$1 | null;
581
- };
582
- type PrivateChangeSet = Change[];
583
- interface DataCaptureMode extends Serializable {
584
- isEnabled(): boolean;
585
- setEnabled(enabled: boolean): Promise<void>;
586
- context: Optional<DataCaptureContext$1>;
587
- }
588
- interface PrivateDataCaptureMode extends DataCaptureMode {
589
- type: "barcodeCapture" | "idCapture";
590
- skipSerialization?: boolean;
591
- [nativeHandle]?: symbol;
592
- _context: Optional<DataCaptureContext$1>;
593
- attachedToContext: (context: DataCaptureContext$1) => Promise<void>;
594
- detachedFromContext: () => Promise<void>;
595
- _synchronousFrameFlow?: boolean;
596
- }
597
- interface DataCaptureModeJSON<S = JSONType> {
598
- type: "barcodeCapture" | "barcodeTracking" | "idCapture" | "parser" | "sparkScan" | "barcodeFind" | "barcodeAr" | "labelCapture";
599
- enabled: boolean;
600
- settings: S;
601
- }
602
- interface PrivateDataCaptureComponent {
603
- _context: DataCaptureContext$1;
604
- }
605
- type DataCaptureComponentJSON = JSONType;
606
- interface DataCaptureComponent extends Serializable<DataCaptureComponentJSON> {
607
- readonly id: string;
608
- }
609
- interface PrivateDataCaptureContextOptions {
610
- deviceName?: string | null;
611
- dataCaptureInstance?: DataCaptureLoader;
612
- delayedRegistration?: boolean;
613
- licenseKey?: string;
614
- settings?: DataCaptureContextSettings;
615
- }
616
- interface PrivateDataCaptureContext<W extends (...parameters: any[]) => unknown = DataCaptureLoader["workerCommand"]> {
617
- _frameSource?: FrameSource | null;
618
- _useSynchronousFrameFlow: boolean;
619
- modes: Set<DataCaptureMode>;
620
- components: DataCaptureComponent[];
621
- createContext: (subscribeToCameraManagerAndVisibilityEvents?: boolean) => Promise<void>;
622
- update: (changeSet?: PrivateChangeSet, { updateContext }?: {
623
- updateContext?: boolean;
624
- }) => Promise<void>;
625
- addNativeOverlay: (overlay: DataCaptureOverlay) => Promise<void>;
626
- removeNativeOverlay: (overlay: DataCaptureOverlay) => Promise<void>;
627
- addComponent: (component: DataCaptureComponent) => Promise<void>;
628
- dataCaptureInstance: DataCaptureLoader;
629
- sendFrameToProcessor: (capture: FrameCapture) => Promise<WorkerResponse<"processFrame">>;
630
- subscribeToWorkerMessages: (listener: (message: DataCaptureCallbackMessage) => void) => void;
631
- unsubscribeToWorkerMessages: (listener: (message: DataCaptureCallbackMessage) => void) => void;
632
- hasEnabledMode: () => boolean;
633
- hasModes: () => boolean;
634
- workerCommand: MethodSignature<W>;
635
- performanceMark: MethodSignature<DataCaptureContext$1["performanceMark"]>;
636
- isFeatureSupported: (feature: LicensedFeature) => Promise<boolean>;
637
- new (): DataCaptureContext$1;
638
- updateListeners: Set<(change: Change) => void>;
639
- updateCameraFrameFlow: (synchronous: boolean) => void;
640
- getView: () => DataCaptureView$1 | null;
641
- }
642
- interface DataCaptureContextCreationOptions {
643
- deviceName?: string;
644
- licenseKey?: string;
645
- settings?: DataCaptureContextSettings;
646
- }
647
- interface RuntimeEnvironment {
648
- deviceOS: string;
649
- browser: string;
650
- browserVersion: string;
651
- deviceModelName: string;
652
- }
653
- interface DataCaptureContextJSON extends RuntimeEnvironment {
654
- framework: string;
655
- settings: DataCaptureContextSettingsJSON;
656
- licenseKey: string;
657
- deviceName: string;
658
- frameSource: FrameSourceJSON | null;
659
- modes: DataCaptureModeJSON[];
660
- components: DataCaptureComponentJSON[];
661
- view: DataCaptureViewJSON | null;
662
- }
663
- type PrivateFrameHandlerResponse = {
664
- action: "continue" | "skip";
665
- frame: FrameCapture;
666
- };
667
- type PrivateFrameHandler = (frame: FrameCapture) => Promise<PrivateFrameHandlerResponse>;
668
- declare class DataCaptureContext$1 implements Serializable<DataCaptureContextJSON> {
669
- static deviceID: string;
670
- private static readonly moduleLicenseTextProviders;
671
- private readonly framework;
672
- private readonly runtimeEnvironment;
673
- private settings;
674
- private licenseKey;
675
- private deviceName;
676
- private _frameSource;
677
- private _view;
678
- private readonly modes;
679
- private readonly components;
680
- private listeners;
681
- private readonly updateListeners;
682
- private readonly cameraPropertiesReportListener;
683
- private readonly cameraAccessErrorListener;
684
- private readonly onWorkerMessageListener;
685
- private readonly onVisibilityChangeListener;
686
- private dataCaptureInstance;
687
- private readonly pendingWorkerMessageListeners;
688
- private delayedRegistration;
689
- private highEndBlurryRecognition;
690
- private readonly _frameHandlers;
691
- /**
692
- * When synchronous, only one frame is processed at a time by the capture mode, the frame source will wait until the
693
- * frame data is back to send the next frame.
694
- *
695
- * IdCapture uses the synchronous flow because BlinkID only processes one frame at a time.
696
- * MatrixScan and other barcode modes usually use the asynchronous flow because they can use multi-threading.
697
- */
698
- private _useSynchronousFrameFlow;
699
- private static _sharedInstance;
700
- static get sharedInstance(): DataCaptureContext$1;
701
- private initializeWithOptions;
702
- get frameSource(): FrameSource | null;
703
- private get workerCommand();
704
- static create(): Promise<DataCaptureContext$1>;
705
- static createWithOptions(options: DataCaptureContextCreationOptions): Promise<DataCaptureContext$1>;
706
- static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
707
- /**
708
- * Disconnect the current frame source from the context and connect the new one. This process can happen multiple
709
- * times for the same frame source because of its initialisation (The mirroring info of a camera is only available
710
- * when it has started for example).
711
- * Trigger the "didChangeFrameSource" listeners only if the new frame source is different than the old one.
712
- */
713
- setFrameSource(frameSource: FrameSource | null): Promise<void>;
714
- addListener(listener: DataCaptureContextListener): void;
715
- flushAnalytics(): Promise<void>;
716
- removeListener(listener: DataCaptureContextListener): void;
717
- addMode(mode: DataCaptureMode): Promise<void>;
718
- removeMode(mode: DataCaptureMode): Promise<void>;
719
- setMode(mode: DataCaptureMode): Promise<void>;
720
- removeCurrentMode(): Promise<void>;
721
- /**
722
- * @deprecated Use removeCurrentMode instead.
723
- */
724
- removeAllModes(): Promise<void>;
725
- dispose(): Promise<void>;
726
- applySettings(settings: DataCaptureContextSettings): Promise<void>;
727
- toJSONObject(): DataCaptureContextJSON;
728
- private getView;
729
- private setView;
730
- private getAppName;
731
- private urlToHostname;
732
- private getParentDomain;
733
- private createContext;
734
- private subscribeToVisibilityChange;
735
- private unsubscribeToVisibilityChange;
736
- private requestFrameData;
737
- private performanceMark;
738
- private sendFrameToProcessor;
739
- private sendFrameToHandlers;
740
- private sendFrameToSDC;
741
- private registerFrameHandler;
742
- private unregisterFrameHandler;
743
- private onVisibilityChange;
744
- private onWorkerMessage;
745
- private subscribeToCameraManagerEvents;
746
- private reportCameraProperties;
747
- private onCameraAccessError;
748
- private update;
749
- private updateContext;
750
- private getViewInfo;
751
- private getMirrorAxisForFrameSource;
752
- private addComponent;
753
- private addNativeOverlay;
754
- private removeNativeOverlay;
755
- private subscribeToWorkerMessages;
756
- private unsubscribeToWorkerMessages;
757
- private hasEnabledMode;
758
- /**
759
- * Some capture modes process frames synchronously, like IdCapture. Other can process multiple frames
760
- * in parallel, like MatrixScan. We inform the CameraManager how to process frames.
761
- */
762
- private updateCameraFrameFlow;
763
- private isFeatureSupported;
194
+ declare function convertToPublicFrameData(loadableFrameData: PrivateLoadableFrameData, context: DataCaptureContext): FrameData;
195
+
196
+ interface ModuleLoader {
197
+ moduleName: string;
198
+ load(options: ModuleLoaderOptions): Promise<any>;
764
199
  }
765
200
 
766
201
  /**
@@ -992,7 +427,7 @@ interface EmscriptenClassHandle<Self = EmscriptenClassHandle<unknown>> {
992
427
  deleteLater: () => void;
993
428
  isAliasOf: () => Self;
994
429
  }
995
- interface DataCaptureContext extends EmscriptenClassHandle {
430
+ interface DataCaptureContext$1 extends EmscriptenClassHandle {
996
431
  setCameraProperties: (deviceId: string, isFrontFacing: boolean, hasAutofocus: boolean) => void;
997
432
  addListener: (function_: unknown) => void;
998
433
  addFrameListener: (listener: unknown) => void;
@@ -1029,12 +464,12 @@ interface JSONParseable extends EmscriptenClassHandle {
1029
464
  toJson: () => string;
1030
465
  }
1031
466
  interface DataCaptureContextDeserializerResult extends EmscriptenClassHandle {
1032
- getContext: () => DataCaptureContext;
467
+ getContext: () => DataCaptureContext$1;
1033
468
  getView: () => DataCaptureView | undefined;
1034
469
  }
1035
470
  interface DataCaptureContextDeserializer extends EmscriptenClassHandle {
1036
471
  contextFromJson: (json: string) => DataCaptureContextDeserializerResult | null;
1037
- updateContextFromJson: (context: DataCaptureContext, view: DataCaptureView | undefined, json: string) => DataCaptureContextDeserializerResult | null;
472
+ updateContextFromJson: (context: DataCaptureContext$1, view: DataCaptureView | undefined, json: string) => DataCaptureContextDeserializerResult | null;
1038
473
  getLastError: () => string;
1039
474
  }
1040
475
  interface CaptureModeDeserializerInstance extends EmscriptenClassHandle {
@@ -1106,31 +541,6 @@ interface HintStyle {
1106
541
  maxLines: number;
1107
542
  cornerRadius: number;
1108
543
  fitToText: boolean;
1109
- /**
1110
- * Will be removed after Id Capture migrates to HintPresenter v2
1111
- * @deprecated
1112
- */
1113
- anchor: Anchor;
1114
- /**
1115
- * @deprecated
1116
- */
1117
- verticalOffsetRatio: number;
1118
- /**
1119
- * @deprecated
1120
- */
1121
- font: HintFont;
1122
- /**
1123
- * @deprecated
1124
- */
1125
- hintWidth: HintWidth;
1126
- /**
1127
- * @deprecated
1128
- */
1129
- hintHeight: HintHeight;
1130
- /**
1131
- * @deprecated
1132
- */
1133
- hintCornerStyle: HintCornerStyle;
1134
544
  }
1135
545
  declare enum GuidanceHintAnchor {
1136
546
  AboveViewFinder = "aboveViewFinder",
@@ -1203,7 +613,8 @@ declare enum LicensedFeature {
1203
613
  SmartLabelBarcode = 35,
1204
614
  SmartLabelText = 36,
1205
615
  VoidedIdDetection = 37,
1206
- BarcodeArFull = 38
616
+ BarcodeArFull = 38,
617
+ BarcodeSequence = 39
1207
618
  }
1208
619
  interface HintPresenterV2 extends EmscriptenClassHandle {
1209
620
  showToast: (toastHint: string) => void;
@@ -1230,20 +641,20 @@ interface Module extends EmscriptenModule {
1230
641
  DataCaptureContextDeserializer: new (fsFolderPath: string, deviceId: string, deviceModel: string, domain: string, parentDomain: string, modeDeserializer: Vector, delayedRegistration: boolean, highEndBlurryRecognition: boolean, resourcePath: string) => DataCaptureContextDeserializer;
1231
642
  DataCaptureContextListener: {
1232
643
  extend: (target: "DataCaptureContextListener", parameters: {
1233
- didChangeStatus: (context: DataCaptureContext, contextStatus: {
644
+ didChangeStatus: (context: DataCaptureContext$1, contextStatus: {
1234
645
  toJson: () => string;
1235
646
  }) => void;
1236
- didStartObservingContext: (context: DataCaptureContext) => void;
1237
- didStopObservingContext: (context: DataCaptureContext) => void;
647
+ didStartObservingContext: (context: DataCaptureContext$1) => void;
648
+ didStopObservingContext: (context: DataCaptureContext$1) => void;
1238
649
  }) => new () => EmscriptenClassHandle;
1239
650
  };
1240
651
  DataCaptureContextFrameListener: {
1241
652
  extend: (target: "DataCaptureContextFrameListener", parameters: {
1242
- onObservationStarted: (context: DataCaptureContext) => void;
1243
- onObservationStopped: (context: DataCaptureContext) => void;
1244
- onFrameProcessingStarted: (context: DataCaptureContext, frameData: WasmFrameData) => void;
1245
- onFrameProcessingFinished: (context: DataCaptureContext, frameData: WasmFrameData) => void;
1246
- onFrameSkipped: (context: DataCaptureContext, frameData: WasmFrameData) => void;
653
+ onObservationStarted: (context: DataCaptureContext$1) => void;
654
+ onObservationStopped: (context: DataCaptureContext$1) => void;
655
+ onFrameProcessingStarted: (context: DataCaptureContext$1, frameData: WasmFrameData) => void;
656
+ onFrameProcessingFinished: (context: DataCaptureContext$1, frameData: WasmFrameData) => void;
657
+ onFrameSkipped: (context: DataCaptureContext$1, frameData: WasmFrameData) => void;
1247
658
  }) => new () => EmscriptenClassHandle;
1248
659
  };
1249
660
  HintPresenter: {
@@ -1301,12 +712,12 @@ interface Module extends EmscriptenModule {
1301
712
  };
1302
713
  dispose: () => void;
1303
714
  LicenseFeature: LicensedFeature;
1304
- addBarcodeFindToContext: (context: DataCaptureContext, mode: EmscriptenClassHandle) => void;
1305
- removeBarcodeFindFromContext: (context: DataCaptureContext, mode: EmscriptenClassHandle) => void;
715
+ addBarcodeFindToContext: (context: DataCaptureContext$1, mode: EmscriptenClassHandle) => void;
716
+ removeBarcodeFindFromContext: (context: DataCaptureContext$1, mode: EmscriptenClassHandle) => void;
1306
717
  addBarcodeFindBasicOverlayToView: (view: DataCaptureView, overlay: EmscriptenClassHandle) => void;
1307
718
  removeBarcodeFindBasicOverlayFromView: (view: DataCaptureView, overlay: EmscriptenClassHandle) => void;
1308
- addBarcodeArToContext: (context: DataCaptureContext, mode: EmscriptenClassHandle) => void;
1309
- removeBarcodeArFromContext: (context: DataCaptureContext, mode: EmscriptenClassHandle) => void;
719
+ addBarcodeArToContext: (context: DataCaptureContext$1, mode: EmscriptenClassHandle) => void;
720
+ removeBarcodeArFromContext: (context: DataCaptureContext$1, mode: EmscriptenClassHandle) => void;
1310
721
  OpenSourceSoftwareLicenseInfo: {
1311
722
  getLicenseText(): string;
1312
723
  };
@@ -1324,214 +735,43 @@ interface ModuleHandler<M extends Module> {
1324
735
  set: (v: M) => void;
1325
736
  }
1326
737
 
1327
- interface FrameData {
1328
- readonly width: number;
1329
- readonly height: number;
1330
- readonly isFrameSourceMirrored: boolean;
1331
- toBlob(type?: string, quality?: number): Promise<Blob | null>;
1332
- getData(): Promise<Uint8ClampedArray | null>;
738
+ interface PoolCapacityOptions {
739
+ minPoolCapacity: number;
740
+ maxPoolCapacity: number;
741
+ }
742
+ declare abstract class FrameReaderAbstract {
743
+ colorType: ColorType;
744
+ protected readonly _contextWebGL: WebGLRenderingContext;
745
+ protected readonly _maxPoolCapacity: number;
746
+ protected readonly _minPoolCapacity: number;
747
+ /**
748
+ * In mobile applications, particularly on Android, capturing frames at a slow rate can be a common issue,
749
+ * especially in scenarios involving barcode tracking. Using a stack becomes valuable in such situations
750
+ * because it allows us to capture next frame with pixel data while the engine is still processing the previous one,
751
+ * eliminating the need to wait for the engine to finish before capturing the next frame.
752
+ */
753
+ protected _framePool: Optional<WatermarkStack<Uint8ClampedArray>>;
754
+ constructor(contextWebGL: WebGLRenderingContext, options?: PoolCapacityOptions | undefined);
755
+ abstract readFromSource(source: TexImageSource): FrameCapture;
756
+ abstract setup(): void;
757
+ recycle(pixelsData: Uint8ClampedArray): void;
758
+ abstract dispose(): void;
1333
759
  }
1334
- type PrivateLoadableFrameData = Omit<FrameData, "getData" | "toBlob"> & {
1335
- frameId: number;
1336
- };
1337
- /**
1338
- * Adds some function to the passed frame data object to let the user load the frame data.
1339
- */
1340
- declare function convertToPublicFrameData(loadableFrameData: PrivateLoadableFrameData, context: DataCaptureContext$1): FrameData;
1341
760
 
1342
- declare enum HintPresenterEvents {
1343
- Update = "hintpresenterupdate"
761
+ declare enum ColorType {
762
+ RGBA = "RGBA",
763
+ GRAYSCALE = "GRAYSCALE"
1344
764
  }
1345
- declare class HintPresenter extends ScanditHTMLElement {
1346
- static readonly tag: "scandit-hints";
1347
- private intervalId;
1348
- private root;
1349
- private _viewFinderRect;
1350
- private onDidToastHideHandler;
1351
- private orientationObserver;
1352
- private onOrientationChangeHandler;
1353
- constructor();
1354
- private static createStyleElement;
1355
- static register(): void;
1356
- static create(): HintPresenter;
1357
- connectedCallback(): void;
1358
- disconnectedCallback(): void;
1359
- setViewFinderRect(rect: Rect | null): void;
1360
- handleMessage(message: DataCaptureCallbackMessage): void;
1361
- private setHintStyleToToast;
1362
- private onDidToastHide;
1363
- showToast(toast: GenericHint): Promise<void>;
1364
- showToastWithCustomIcon(hintStyle: GenericHint, icon: ScanditIcon): Promise<void>;
1365
- hideToast(hintStyle: GenericHint): Promise<void>;
1366
- private showGuidance;
1367
- private hideGuidance;
1368
- private startUpdateTimer;
1369
- private stopUpdateTimer;
1370
- private idFromHint;
1371
- private onOrientationChange;
1372
- }
1373
- declare global {
1374
- interface HTMLElementTagNameMap {
1375
- [HintPresenter.tag]: HintPresenter;
1376
- }
1377
- interface HTMLElementEventMap {
1378
- [HintPresenterEvents.Update]: CustomEvent<void>;
1379
- }
1380
- }
1381
-
1382
- interface LoadLibraryParameters {
1383
- libraryLocation: string;
1384
- locationPath: string;
1385
- writableDataPathOverride?: string;
1386
- overrideSimdSupport: OverrideState;
1387
- overrideThreadsSupport: OverrideState;
1388
- verifyResponseHash: boolean;
1389
- onProgress?: (info: ProgressInfo) => void;
1390
- referredOrigin?: string;
1391
- fixedWasmMemory: number | null;
1392
- }
1393
- interface CreateContextParameters {
1394
- context: DataCaptureContextJSON;
1395
- deviceId: string;
1396
- delayedRegistration: boolean;
1397
- highEndBlurryRecognition: boolean;
1398
- appName: string | null;
1399
- parentDomain: string;
1400
- }
1401
- interface UpdateContextParameters {
1402
- context: DataCaptureContextJSON;
1403
- view: {
1404
- width: number;
1405
- height: number;
1406
- visible: boolean;
1407
- orientation: Orientation;
1408
- } | null;
1409
- }
1410
- interface SetFrameSourceParameters {
1411
- mirrorAxis: PrivateMirrorAxis;
1412
- isCameraFrameSource: boolean;
1413
- }
1414
- type ProcessFrameParameters = FrameCapture;
1415
- interface ReportCameraPropertiesParameters {
1416
- deviceId: string;
1417
- hasAutofocus: boolean;
1418
- isFrontFacing: boolean;
1419
- }
1420
- interface WorkerFunctions {
1421
- getOffscreenCanvas: () => OffscreenCanvas | undefined;
1422
- postMessage: (message: DataCaptureCallbackMessage, transfer?: Transferable[]) => void;
1423
- }
1424
- /**
1425
- * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
1426
- * and should be used as a singleton. It calls the underlying engine methods directly.
1427
- */
1428
- declare class DataCaptureEngine<M extends Module> {
1429
- private static get3dPartyLicenseKeyMethodName;
1430
- context: DataCaptureContext;
1431
- lastUsedModuleMirrorAxis: unknown;
1432
- view: DataCaptureView | undefined;
1433
- hintPresenterV2: HintPresenterV2 | null;
1434
- protected readonly MAX_NUMBER_OF_IMAGES_IN_FRAME_DATA_POOL: number;
1435
- protected readonly moduleHandler: ModuleHandler<M>;
1436
- protected readonly redrawInterval: number;
1437
- protected readonly redrawRequests: number[];
1438
- protected readonly workerFunctions: WorkerFunctions;
1439
- protected _isDrawLoopRunning: boolean;
1440
- protected contextDeserializer: DataCaptureContextDeserializer | undefined;
1441
- protected frameDataPool: Map<number, Uint8ClampedArray>;
1442
- protected imageFrameSource?: DataCaptureImageBufferFrameSource;
1443
- protected lastFrameCounter: number;
1444
- protected libraryLoadingPromise: Promise<void> | undefined;
1445
- protected loopTimeoutId?: ReturnType<typeof setTimeout>;
1446
- protected resourcePath: string;
1447
- protected writableDataPath: string;
1448
- protected poorMansBenchmarkLogs: boolean;
1449
- protected parentDomain: string;
1450
- protected readonly writableDataPathStandard: string;
1451
- protected readonly resourceFilesSubfolder: string;
1452
- protected performanceMetricsReporterTimer: ReturnType<typeof setTimeout> | undefined;
1453
- protected performanceMetrics: PerformanceMetrics;
1454
- protected gestureRecognizer: GestureRecognizer | null;
1455
- private gestureListener;
1456
- private webPlatformHintPresenter;
1457
- constructor(moduleHandler: ModuleHandler<M>, workerFunctions: WorkerFunctions);
1458
- get Module(): M;
1459
- set isDrawLoopRunning(newValue: boolean);
1460
- get isDrawLoopRunning(): boolean;
1461
- convertToLoadableFrameData(frameData: WasmFrameData): PrivateLoadableFrameData;
1462
- createContext(createContextJSON: CreateContextParameters): EngineWorkerResponse<"createContext">;
1463
- onTap(point: PointJSON): void;
1464
- hintPresenterV2Update(): void;
1465
- startReportingPerformanceMetrics(): void;
1466
- reportPerformanceMetrics(): Promise<void>;
1467
- deleteFrameData(frameId: number): void;
1468
- dispose(): EngineWorkerResponse<"dispose">;
1469
- flushAnalytics(): void;
1470
- extractCentaurusLicense(scanditLicenseKey: string): EngineWorkerResponse<"extractCentaurusLicense">;
1471
- getModeDeserializers(): Vector;
1472
- loadLibrary(parameters: LoadLibraryParameters): EngineWorkerResponse<"loadLibrary">;
1473
- processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
1474
- reportCameraProperties(properties: ReportCameraPropertiesParameters): EngineWorkerResponse<"reportCameraProperties">;
1475
- requestFrameData(frameId: number): EngineWorkerResponse<"requestFrameData">;
1476
- scheduleRedraw(view: DataCaptureView, redrawInMs: number): void;
1477
- sendViewRefreshCommands(commands: Uint8Array): void;
1478
- setFrameSource(mirrorAxis: PrivateMirrorAxis, isCameraFrameSource: boolean): EngineWorkerResponse<"setFrameSource">;
1479
- /**
1480
- * The draw loop check at regular interval if any redraw request were made by the engine.
1481
- * If a redraw is necessary, it gathers and sends drawing commands to the main thread.
1482
- */
1483
- startDrawLoop(view: DataCaptureView): void;
1484
- updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
1485
- /**
1486
- * Called before updateContextFromJson
1487
- *
1488
- * @protected
1489
- * @param {UpdateContextParameters} contextUpdateParameters
1490
- * @returns {UpdateContextParameters}
1491
- */
1492
- protected onBeforeUpdateContextHook(contextUpdateParameters: UpdateContextParameters): UpdateContextParameters;
1493
- onDocumentVisibilityChange(state: DocumentVisibilityState): void;
1494
- isFeatureSupported(feature: LicensedFeature): EngineWorkerResponse<"isFeatureSupported">;
1495
- getViewfinderInfo(): EngineWorkerResponse<"getViewfinderInfo">;
1496
- getOpenSourceSoftwareLicenseInfo(): EngineWorkerResponse<"getOpenSourceSoftwareLicenseInfo">;
1497
- protected getNextFrameId(): number;
1498
- protected getWasmDynamicLibraries(coreWasmURI: string): string[];
1499
- protected getWasmCoreExpectedHash(simdSupport: boolean, threadsSupport: boolean): string;
1500
- protected getWasmCoreFileName(simdSupport: boolean, threadsSupport: boolean): string;
1501
- protected getWasmMetadata(): Record<string, {
1502
- bytes: number;
1503
- }>;
1504
- protected getWasmSideModuleFileName(): string;
1505
- private _loadProgressCallback;
1506
- /**
1507
- * Redraw requests are scheduled at [now + redrawInMs], so when pushed they must be sorted
1508
- * in chronological order so that we can later easily check if we need to redraw by checking
1509
- * the first element.
1510
- * @param redrawInMs
1511
- */
1512
- private addRedrawRequest;
1513
- private contextDidChangeStatus;
1514
- private didStartObservingContext;
1515
- private mapMirrorAxisOnModule;
1516
- protected setView(view: DataCaptureView | undefined): void;
1517
- /**
1518
- * Add a native overlay to the view without passing from the deserializer.
1519
- * must be implemented in the specific module.
1520
- * @param event - The message event containing the overlay handle.
1521
- */
1522
- addNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1523
- /**
1524
- * Remove a native overlay from the view.
1525
- * must be implemented in the specific module.
1526
- * @param event - The message event containing the overlay handle.
1527
- */
1528
- removeNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1529
- private setViewRefreshHandler;
1530
- private setupDataDecoding;
1531
- private start;
1532
- private getWritableDataPath;
1533
- private numOfMBToPages;
1534
- private setup;
765
+ declare class FrameReader extends FrameReaderAbstract {
766
+ colorType: ColorType;
767
+ private _framebuffer;
768
+ private _texture;
769
+ private _frameSize;
770
+ private get _initialized();
771
+ readFromSource(source: TexImageSource): FrameCapture;
772
+ setup(): void;
773
+ dispose(): void;
774
+ private updateFrameSizeIfNeeded;
1535
775
  }
1536
776
 
1537
777
  declare enum MeteringMode {
@@ -1595,11 +835,11 @@ declare class CameraManager {
1595
835
  private static readonly videoMetadataCheckTimeoutMs;
1596
836
  private static MIRRORED_CLASS_NAME;
1597
837
  private static _instance;
1598
- activeCamera?: DeviceCamera$1;
838
+ activeCamera?: DeviceCamera;
1599
839
  activeCameraSettings?: CameraSettings;
1600
840
  canvas: HTMLCanvasElement;
1601
841
  gui: GUI;
1602
- selectedCamera?: DeviceCamera$1;
842
+ selectedCamera?: DeviceCamera;
1603
843
  videoElement: HTMLVideoElement;
1604
844
  private constraint;
1605
845
  private clipArea?;
@@ -1661,7 +901,7 @@ declare class CameraManager {
1661
901
  addListener<E extends CameraManagerEvent>(event: CameraManagerEvent, listener: (details: CameraManagerEventParameters<E>) => void): void;
1662
902
  applyCameraSettings(cameraSettings?: CameraSettings): Promise<void>;
1663
903
  captureImage(): FrameCapture | null;
1664
- initializeCameraWithSettings(camera?: DeviceCamera$1, cameraSettings?: CameraSettings): Promise<void>;
904
+ initializeCameraWithSettings(camera?: DeviceCamera, cameraSettings?: CameraSettings): Promise<void>;
1665
905
  isMirrorImageEnabled(): boolean;
1666
906
  isPinchToZoomEnabled(): boolean;
1667
907
  isTapToFocusEnabled(): boolean;
@@ -1683,7 +923,7 @@ declare class CameraManager {
1683
923
  setInteractionOptions(torchToggleEnabled: boolean, tapToFocusEnabled: boolean, pinchToZoomEnabled: boolean): void;
1684
924
  setMirrorImageEnabled(enabled: boolean, override: boolean): void;
1685
925
  setPinchToZoomEnabled(enabled: boolean): void;
1686
- setSelectedCamera(camera?: DeviceCamera$1): void;
926
+ setSelectedCamera(camera?: DeviceCamera): void;
1687
927
  setSelectedCameraSettings(cameraSettings?: CameraSettings): void;
1688
928
  setTapToFocusEnabled(enabled: boolean): void;
1689
929
  setTorchEnabled(enabled: boolean): Promise<void>;
@@ -1761,85 +1001,551 @@ declare class CameraManager {
1761
1001
  private handleVideoPause;
1762
1002
  }
1763
1003
 
1764
- interface CameraJSON extends FrameSourceJSON {
1765
- type: "camera";
1766
- position: CameraPosition;
1767
- settings: CameraSettingsJSON | Record<string, never>;
1768
- desiredState: FrameSourceState;
1769
- desiredTorchState: TorchState;
1770
- }
1771
- interface VideoFrameResolution {
1772
- readonly width: number;
1773
- readonly height: number;
1004
+ interface LoadLibraryParameters {
1005
+ libraryLocation: string;
1006
+ locationPath: string;
1007
+ writableDataPathOverride?: string;
1008
+ overrideSimdSupport: OverrideState;
1009
+ overrideThreadsSupport: OverrideState;
1010
+ verifyResponseHash: boolean;
1011
+ onProgress?: (info: ProgressInfo) => void;
1012
+ referredOrigin?: string;
1013
+ fixedWasmMemory: number | null;
1774
1014
  }
1775
- declare class Camera implements FrameSource, Serializable<CameraJSON> {
1776
- readonly label: string;
1015
+ interface CreateContextParameters {
1016
+ context: DataCaptureContextJSON;
1777
1017
  deviceId: string;
1778
- readonly position: CameraPosition;
1779
- private _currentResolution?;
1780
- private readonly cameraManager;
1781
- private readonly type;
1782
- private readonly webGLContextLostListener;
1783
- private _currentState;
1784
- private _settings;
1785
- private _desiredTorchState;
1786
- private _desiredState;
1787
- private readonly listeners;
1788
- private _context;
1789
- private _desiredMirrorImageEnabled?;
1790
- private _lastCaptureRequestAnimationFrame?;
1791
- private _lastCanvasVideoPreviewAnimationFrame?;
1792
- private _isAndroidWebView?;
1793
- private readonly stateTransitionStrategyMap;
1794
- private currentTransitionStrategyPromise?;
1795
- constructor(manager?: CameraManager);
1796
- static get default(): Camera;
1797
- get desiredState(): FrameSourceState;
1798
- get settings(): CameraSettings;
1799
- get currentResolution(): VideoFrameResolution | null;
1800
- private get context();
1801
- private set context(value);
1802
- private get currentState();
1803
- static atPosition(cameraPosition: CameraPosition): Camera | null;
1804
- static fromDeviceCamera(deviceCamera: DeviceCamera): Camera;
1805
- switchToDesiredState(state: FrameSourceState): Promise<void>;
1806
- getDesiredTorchState(): TorchState;
1807
- setDesiredTorchState(desiredTorchState: TorchState): Promise<void>;
1808
- isTorchAvailable(): Promise<boolean>;
1809
- addListener(listener: FrameSourceListener | null): void;
1810
- removeListener(listener: FrameSourceListener | null): void;
1811
- applySettings(settings: CameraSettings): Promise<void>;
1812
- toJSONObject(): CameraJSON;
1813
- getMirrorImageEnabled(): boolean;
1814
- setMirrorImageEnabled(enabled: boolean): Promise<void>;
1815
- getCurrentState(): FrameSourceState;
1816
- setClipArea(area?: Rect): Promise<void>;
1817
- private setCurrentState;
1818
- /**
1819
- * Starts camera according to the given position. If a deviceId is set, pre-select the corresponding camera.
1820
- * The function returns as soon as the camera has started successfully and is active. The label and
1821
- * position properties reflect then the values found in the accessed stream.
1822
- */
1823
- private setupCamera;
1824
- private notifyContext;
1825
- private notifyListeners;
1826
- private updateCanvasVideoImage;
1827
- private captureAndSend;
1828
- /**
1829
- * Capture images from the video stream and send them to the context. If no context is set, the function will
1830
- * stop itself until called again. While no enabled mode is present in the context, the function will schedule itself
1831
- * again indefinitely without doing anything else.
1832
- */
1833
- private startSendingCapturesToWorker;
1834
- private stopSendingCapturesToWorker;
1835
- private transitionFromStateOffToOn;
1836
- private transitionFromStateOffToStandby;
1837
- private transitionFromStateOnToOff;
1838
- private transitionFromStateOnToStandby;
1839
- private transitionFromStateStandbyToOff;
1840
- private transitionFromStateStandbyToOn;
1841
- private isAndroidWebView;
1842
- private isZoomAvailable;
1018
+ delayedRegistration: boolean;
1019
+ highEndBlurryRecognition: boolean;
1020
+ appName: string | null;
1021
+ parentDomain: string;
1022
+ }
1023
+ interface UpdateContextParameters {
1024
+ context: DataCaptureContextJSON;
1025
+ view: {
1026
+ width: number;
1027
+ height: number;
1028
+ visible: boolean;
1029
+ orientation: Orientation;
1030
+ } | null;
1031
+ }
1032
+ interface SetFrameSourceParameters {
1033
+ mirrorAxis: PrivateMirrorAxis;
1034
+ isCameraFrameSource: boolean;
1035
+ }
1036
+ type ProcessFrameParameters = FrameCapture;
1037
+ interface ReportCameraPropertiesParameters {
1038
+ deviceId: string;
1039
+ hasAutofocus: boolean;
1040
+ isFrontFacing: boolean;
1041
+ }
1042
+ interface WorkerFunctions {
1043
+ getOffscreenCanvas: () => OffscreenCanvas | undefined;
1044
+ postMessage: (message: DataCaptureCallbackMessage, transfer?: Transferable[]) => void;
1045
+ }
1046
+ /**
1047
+ * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
1048
+ * and should be used as a singleton. It calls the underlying engine methods directly.
1049
+ */
1050
+ declare class DataCaptureEngine<M extends Module> {
1051
+ private static get3dPartyLicenseKeyMethodName;
1052
+ context: DataCaptureContext$1;
1053
+ lastUsedModuleMirrorAxis: unknown;
1054
+ view: DataCaptureView | undefined;
1055
+ hintPresenterV2: HintPresenterV2 | null;
1056
+ protected readonly MAX_NUMBER_OF_IMAGES_IN_FRAME_DATA_POOL: number;
1057
+ protected readonly moduleHandler: ModuleHandler<M>;
1058
+ protected readonly redrawInterval: number;
1059
+ protected readonly redrawRequests: number[];
1060
+ protected readonly workerFunctions: WorkerFunctions;
1061
+ protected _isDrawLoopRunning: boolean;
1062
+ protected contextDeserializer: DataCaptureContextDeserializer | undefined;
1063
+ protected frameDataPool: Map<number, Uint8ClampedArray>;
1064
+ protected imageFrameSource?: DataCaptureImageBufferFrameSource;
1065
+ protected lastFrameCounter: number;
1066
+ protected libraryLoadingPromise: Promise<void> | undefined;
1067
+ protected loopTimeoutId?: ReturnType<typeof setTimeout>;
1068
+ protected resourcePath: string;
1069
+ protected writableDataPath: string;
1070
+ protected poorMansBenchmarkLogs: boolean;
1071
+ protected parentDomain: string;
1072
+ protected readonly writableDataPathStandard: string;
1073
+ protected readonly resourceFilesSubfolder: string;
1074
+ protected performanceMetricsReporterTimer: ReturnType<typeof setTimeout> | undefined;
1075
+ protected performanceMetrics: PerformanceMetrics;
1076
+ protected gestureRecognizer: GestureRecognizer | null;
1077
+ private gestureListener;
1078
+ private webPlatformHintPresenter;
1079
+ constructor(moduleHandler: ModuleHandler<M>, workerFunctions: WorkerFunctions);
1080
+ get Module(): M;
1081
+ set isDrawLoopRunning(newValue: boolean);
1082
+ get isDrawLoopRunning(): boolean;
1083
+ convertToLoadableFrameData(frameData: WasmFrameData): PrivateLoadableFrameData;
1084
+ createContext(createContextJSON: CreateContextParameters): EngineWorkerResponse<"createContext">;
1085
+ onTap(point: PointJSON): void;
1086
+ hintPresenterV2Update(): void;
1087
+ startReportingPerformanceMetrics(): void;
1088
+ reportPerformanceMetrics(): Promise<void>;
1089
+ deleteFrameData(frameId: number): void;
1090
+ dispose(): EngineWorkerResponse<"dispose">;
1091
+ flushAnalytics(): void;
1092
+ extractCentaurusLicense(scanditLicenseKey: string): EngineWorkerResponse<"extractCentaurusLicense">;
1093
+ getModeDeserializers(): Vector;
1094
+ loadLibrary(parameters: LoadLibraryParameters): EngineWorkerResponse<"loadLibrary">;
1095
+ processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
1096
+ reportCameraProperties(properties: ReportCameraPropertiesParameters): EngineWorkerResponse<"reportCameraProperties">;
1097
+ requestFrameData(frameId: number): EngineWorkerResponse<"requestFrameData">;
1098
+ scheduleRedraw(view: DataCaptureView, redrawInMs: number): void;
1099
+ sendViewRefreshCommands(commands: Uint8Array): void;
1100
+ setFrameSource(mirrorAxis: PrivateMirrorAxis, isCameraFrameSource: boolean): EngineWorkerResponse<"setFrameSource">;
1101
+ /**
1102
+ * The draw loop check at regular interval if any redraw request were made by the engine.
1103
+ * If a redraw is necessary, it gathers and sends drawing commands to the main thread.
1104
+ */
1105
+ startDrawLoop(view: DataCaptureView): void;
1106
+ updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
1107
+ /**
1108
+ * Called before updateContextFromJson
1109
+ *
1110
+ * @protected
1111
+ * @param {UpdateContextParameters} contextUpdateParameters
1112
+ * @returns {UpdateContextParameters}
1113
+ */
1114
+ protected onBeforeUpdateContextHook(contextUpdateParameters: UpdateContextParameters): UpdateContextParameters;
1115
+ onDocumentVisibilityChange(state: DocumentVisibilityState): void;
1116
+ isFeatureSupported(feature: LicensedFeature): EngineWorkerResponse<"isFeatureSupported">;
1117
+ getViewfinderInfo(): EngineWorkerResponse<"getViewfinderInfo">;
1118
+ getOpenSourceSoftwareLicenseInfo(): EngineWorkerResponse<"getOpenSourceSoftwareLicenseInfo">;
1119
+ protected getNextFrameId(): number;
1120
+ protected getWasmDynamicLibraries(coreWasmURI: string): string[];
1121
+ protected getWasmCoreExpectedHash(simdSupport: boolean, threadsSupport: boolean): string;
1122
+ protected getWasmCoreFileName(simdSupport: boolean, threadsSupport: boolean): string;
1123
+ protected getWasmMetadata(): Record<string, {
1124
+ bytes: number;
1125
+ }>;
1126
+ protected getWasmSideModuleFileName(): string;
1127
+ private _loadProgressCallback;
1128
+ /**
1129
+ * Redraw requests are scheduled at [now + redrawInMs], so when pushed they must be sorted
1130
+ * in chronological order so that we can later easily check if we need to redraw by checking
1131
+ * the first element.
1132
+ * @param redrawInMs
1133
+ */
1134
+ private addRedrawRequest;
1135
+ private contextDidChangeStatus;
1136
+ private didStartObservingContext;
1137
+ private mapMirrorAxisOnModule;
1138
+ protected setView(view: DataCaptureView | undefined): void;
1139
+ /**
1140
+ * Add a native overlay to the view without passing from the deserializer.
1141
+ * must be implemented in the specific module.
1142
+ * @param event - The message event containing the overlay handle.
1143
+ */
1144
+ addNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1145
+ /**
1146
+ * Remove a native overlay from the view.
1147
+ * must be implemented in the specific module.
1148
+ * @param event - The message event containing the overlay handle.
1149
+ */
1150
+ removeNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1151
+ private setViewRefreshHandler;
1152
+ private setupDataDecoding;
1153
+ private start;
1154
+ private getWritableDataPath;
1155
+ private numOfMBToPages;
1156
+ private setup;
1157
+ }
1158
+
1159
+ type CommandAndPayload<A, C> = A extends {
1160
+ command: C;
1161
+ } ? A : never;
1162
+ type WorkerCommandPayload<C> = Omit<CommandAndPayload<AnyDataCaptureActionMessage, C>, "command" | "id">;
1163
+ type WorkerListener = (event: DataCaptureCallbackMessage) => any;
1164
+ interface DataCaptureLoaderOptions {
1165
+ libraryLocation: string;
1166
+ verifyResponseHash: boolean;
1167
+ loadProgressNotifier?: (info: ProgressInfo) => void;
1168
+ logLevel?: Logger.Level;
1169
+ overrideSimdSupport: OverrideState;
1170
+ overrideThreadsSupport: OverrideState;
1171
+ highEndBlurryRecognition?: boolean;
1172
+ }
1173
+ /**
1174
+ * The DataCaptureLoader class is used by the main thread, it instantiates the worker
1175
+ * and sends commands to it. It represents thus the main communication channel
1176
+ * between the main thread and the engine running in the worker.
1177
+ */
1178
+ declare class DataCaptureLoader {
1179
+ highEndBlurryRecognition?: boolean;
1180
+ protected overrideThreadsSupport: OverrideState;
1181
+ protected overrideSimdSupport: OverrideState;
1182
+ protected verifyResponseHash: boolean;
1183
+ protected _dataCaptureWorker?: DataCaptureWorker;
1184
+ protected readonly libraryLocation: string;
1185
+ protected workerCommandId: number;
1186
+ protected readonly workerTasks: Map<number, {
1187
+ resolve: (...arguments_: any[]) => any;
1188
+ reject: (...arguments_: any[]) => any;
1189
+ command: string;
1190
+ }>;
1191
+ protected readonly workerListeners: WorkerListener[];
1192
+ protected workerMessageListener: (event_: MessageEvent<DataCaptureCallbackMessage>) => void;
1193
+ protected constructor(options: DataCaptureLoaderOptions);
1194
+ get dataCaptureWorker(): DataCaptureWorker;
1195
+ protected get name(): string;
1196
+ protected get fixedWasmMemory(): number | null;
1197
+ static create(options: DataCaptureLoaderOptions): Promise<DataCaptureLoader>;
1198
+ load(): Promise<WorkerResponse<"loadLibrary">>;
1199
+ /**
1200
+ * Send a task (i.e. a command) to the worker. Every task sent has a corresponding Promise object which
1201
+ * gets resolved when the worker has processed the request. The tasks are identified by an id which is
1202
+ * sent along with the data by both sides.
1203
+ */
1204
+ workerCommand<C extends DataCaptureActionMessageKey>(command: C, payload: WorkerCommandPayload<C>, transferables?: Transferable[]): Promise<WorkerResponse<C>>;
1205
+ terminateDataCaptureWorker(disposeContext?: boolean): Promise<void>;
1206
+ addWorkerListener(listener: WorkerListener): void;
1207
+ removeWorkerListener(listener: WorkerListener): void;
1208
+ getOptions(): Pick<DataCaptureLoaderOptions, "libraryLocation" | "overrideSimdSupport" | "overrideThreadsSupport" | "verifyResponseHash">;
1209
+ protected onWorkerMessage(event_: MessageEvent<DataCaptureCallbackMessage>): void;
1210
+ }
1211
+
1212
+ declare enum HintPresenterEvents {
1213
+ Update = "hintpresenterupdate"
1214
+ }
1215
+ declare class HintPresenter extends ScanditHTMLElement {
1216
+ static readonly tag: "scandit-hints";
1217
+ private intervalId;
1218
+ private root;
1219
+ private _viewFinderRect;
1220
+ private onDidToastHideHandler;
1221
+ private orientationObserver;
1222
+ private onOrientationChangeHandler;
1223
+ constructor();
1224
+ private static createStyleElement;
1225
+ static register(): void;
1226
+ static create(): HintPresenter;
1227
+ connectedCallback(): void;
1228
+ disconnectedCallback(): void;
1229
+ setViewFinderRect(rect: Rect | null): void;
1230
+ handleMessage(message: DataCaptureCallbackMessage): Promise<void>;
1231
+ private setHintStyleToToast;
1232
+ private onDidToastHide;
1233
+ private getToastElementFromIdOrTag;
1234
+ showToast(toast: GenericHint): Promise<void>;
1235
+ showToastWithCustomIcon(hintStyle: GenericHint, icon: ScanditIcon): Promise<void>;
1236
+ hideToast(hintStyle: GenericHint): Promise<void>;
1237
+ private showGuidance;
1238
+ private hideGuidance;
1239
+ private startUpdateTimer;
1240
+ private stopUpdateTimer;
1241
+ private idFromHint;
1242
+ private onOrientationChange;
1243
+ }
1244
+ declare global {
1245
+ interface HTMLElementTagNameMap {
1246
+ [HintPresenter.tag]: HintPresenter;
1247
+ }
1248
+ interface HTMLElementEventMap {
1249
+ [HintPresenterEvents.Update]: CustomEvent<void>;
1250
+ }
1251
+ }
1252
+
1253
+ interface DataCaptureContextListener {
1254
+ didChangeStatus?: (context: DataCaptureContext, contextStatus: ContextStatus) => void;
1255
+ didStartObservingContext?: (context: DataCaptureContext) => void;
1256
+ didChangeFrameSource?: (context: DataCaptureContext, frameSource: FrameSource | null) => void;
1257
+ }
1258
+ interface ContextStatusJSON {
1259
+ code: number;
1260
+ isValid: boolean;
1261
+ message: string;
1262
+ }
1263
+ declare class ContextStatus {
1264
+ private _message;
1265
+ private _code;
1266
+ private _isValid;
1267
+ private static fromJSON;
1268
+ get message(): string;
1269
+ get code(): number;
1270
+ get isValid(): boolean;
1271
+ }
1272
+ declare enum PrivateMirrorAxis {
1273
+ None = "None",
1274
+ X = "X",
1275
+ Y = "Y"
1276
+ }
1277
+
1278
+ type DataCaptureContextState = "unconfigured" | "configuring" | "configured" | "creating-context" | "ready";
1279
+
1280
+ type Change = {
1281
+ type: "modeEnabled";
1282
+ newValue: boolean;
1283
+ } | {
1284
+ type: "addControl";
1285
+ newValue: any;
1286
+ } | {
1287
+ type: "addOverlay";
1288
+ newValue: any;
1289
+ } | {
1290
+ type: "cameraSettings";
1291
+ newValue: any;
1292
+ } | {
1293
+ type: "frameSourceState";
1294
+ newValue: any;
1295
+ } | {
1296
+ type: "removeControl";
1297
+ newValue: any;
1298
+ } | {
1299
+ type: "removeOverlay";
1300
+ newValue: any;
1301
+ } | {
1302
+ type: "singleImageModeUploaderSettings";
1303
+ newValue: any;
1304
+ } | {
1305
+ type: "torchState";
1306
+ newValue: any;
1307
+ } | {
1308
+ type: "viewChange";
1309
+ newValue: {
1310
+ orientation: Orientation;
1311
+ } & Partial<HTMLElementStateJSON>;
1312
+ } | {
1313
+ type: "viewSet";
1314
+ newValue: DataCaptureView$1 | null;
1315
+ };
1316
+ type PrivateChangeSet = Change[];
1317
+ interface DataCaptureMode extends Serializable {
1318
+ isEnabled(): boolean;
1319
+ setEnabled(enabled: boolean): Promise<void>;
1320
+ context: Optional<DataCaptureContext>;
1321
+ }
1322
+ interface PrivateDataCaptureMode extends DataCaptureMode {
1323
+ type: "barcodeCapture" | "idCapture";
1324
+ skipSerialization?: boolean;
1325
+ [nativeHandle]?: symbol;
1326
+ _context: Optional<DataCaptureContext>;
1327
+ attachedToContext: (context: DataCaptureContext) => Promise<void>;
1328
+ detachedFromContext: () => Promise<void>;
1329
+ _synchronousFrameFlow?: boolean;
1330
+ }
1331
+ interface DataCaptureModeJSON<S = JSONType> {
1332
+ type: "barcodeCapture" | "barcodeTracking" | "idCapture" | "parser" | "sparkScan" | "barcodeFind" | "barcodeAr" | "labelCapture";
1333
+ enabled: boolean;
1334
+ settings: S;
1335
+ }
1336
+ interface PrivateDataCaptureComponent {
1337
+ _context: DataCaptureContext;
1338
+ }
1339
+ type DataCaptureComponentJSON = JSONType;
1340
+ interface DataCaptureComponent extends Serializable<DataCaptureComponentJSON> {
1341
+ readonly id: string;
1342
+ }
1343
+ interface PrivateDataCaptureContextOptions {
1344
+ deviceName?: string | null;
1345
+ dataCaptureInstance?: DataCaptureLoader;
1346
+ delayedRegistration?: boolean;
1347
+ licenseKey?: string;
1348
+ settings?: DataCaptureContextSettings;
1349
+ }
1350
+ interface PrivateDataCaptureContext<W extends (...parameters: any[]) => unknown = DataCaptureLoader["workerCommand"]> {
1351
+ _frameSource?: FrameSource | null;
1352
+ _useSynchronousFrameFlow: boolean;
1353
+ modes: Set<DataCaptureMode>;
1354
+ components: DataCaptureComponent[];
1355
+ createContext: () => Promise<void>;
1356
+ update: (changeSet?: PrivateChangeSet, { updateContext }?: {
1357
+ updateContext?: boolean;
1358
+ }) => Promise<void>;
1359
+ addNativeOverlay: (overlay: DataCaptureOverlay) => Promise<void>;
1360
+ removeNativeOverlay: (overlay: DataCaptureOverlay) => Promise<void>;
1361
+ addComponent: (component: DataCaptureComponent) => Promise<void>;
1362
+ dataCaptureInstance: DataCaptureLoader;
1363
+ sendFrameToProcessor: (capture: FrameCapture) => Promise<WorkerResponse<"processFrame">>;
1364
+ subscribeToWorkerMessages: (listener: (message: DataCaptureCallbackMessage) => void) => void;
1365
+ unsubscribeToWorkerMessages: (listener: (message: DataCaptureCallbackMessage) => void) => void;
1366
+ hasEnabledMode: () => boolean;
1367
+ hasModes: () => boolean;
1368
+ workerCommand: MethodSignature<W>;
1369
+ performanceMark: MethodSignature<DataCaptureContext["performanceMark"]>;
1370
+ isFeatureSupported: (feature: LicensedFeature) => Promise<boolean>;
1371
+ new (): DataCaptureContext;
1372
+ updateListeners: Set<(change: Change) => void>;
1373
+ updateCameraFrameFlow: (synchronous: boolean) => void;
1374
+ getView: () => DataCaptureView$1 | null;
1375
+ }
1376
+ interface DataCaptureContextCreationOptions {
1377
+ libraryLocation: string;
1378
+ moduleLoaders: ModuleLoader[];
1379
+ deviceName?: string;
1380
+ settings?: DataCaptureContextSettings;
1381
+ logLevel?: Logger.Level;
1382
+ }
1383
+ /**
1384
+ * Configuration options for initializing the DataCapture SDK.
1385
+ *
1386
+ * @public
1387
+ */
1388
+ interface ModuleLoaderOptions {
1389
+ licenseKey: string;
1390
+ libraryLocation: string;
1391
+ moduleLoaders: ModuleLoader[];
1392
+ logLevel: Logger.Level;
1393
+ }
1394
+ interface RuntimeEnvironment {
1395
+ deviceOS: string;
1396
+ browser: string;
1397
+ browserVersion: string;
1398
+ deviceModelName: string;
1399
+ }
1400
+ interface DataCaptureContextJSON extends RuntimeEnvironment {
1401
+ framework: string;
1402
+ settings: DataCaptureContextSettingsJSON;
1403
+ licenseKey: string;
1404
+ deviceName: string;
1405
+ frameSource: FrameSourceJSON | null;
1406
+ modes: DataCaptureModeJSON[];
1407
+ components: DataCaptureComponentJSON[];
1408
+ view: DataCaptureViewJSON | null;
1409
+ }
1410
+ type PrivateFrameHandlerResponse = {
1411
+ action: "continue" | "skip";
1412
+ frame: FrameCapture;
1413
+ };
1414
+ type PrivateFrameHandler = (frame: FrameCapture) => Promise<PrivateFrameHandlerResponse>;
1415
+ declare class DataCaptureContext implements Serializable<DataCaptureContextJSON> {
1416
+ static deviceID: string;
1417
+ protected static stateMachine: AsyncStateMachine<DataCaptureContextState>;
1418
+ protected static mainDataCaptureLoader: DataCaptureLoader | undefined;
1419
+ protected static dataCaptureLoaders: Map<string, DataCaptureLoader>;
1420
+ protected static libraryLocation: string | undefined;
1421
+ private static userLicenseKey;
1422
+ private static get moduleLicenseTextProviders();
1423
+ private readonly framework;
1424
+ private readonly runtimeEnvironment;
1425
+ private settings;
1426
+ private licenseKey;
1427
+ private deviceName;
1428
+ private _frameSource;
1429
+ private _view;
1430
+ private readonly modes;
1431
+ private readonly components;
1432
+ private listeners;
1433
+ private readonly updateListeners;
1434
+ private readonly cameraPropertiesReportListener;
1435
+ private readonly cameraAccessErrorListener;
1436
+ private readonly onWorkerMessageListener;
1437
+ private readonly onVisibilityChangeListener;
1438
+ private dataCaptureInstance;
1439
+ private readonly pendingWorkerMessageListeners;
1440
+ private delayedRegistration;
1441
+ private highEndBlurryRecognition;
1442
+ private readonly _frameHandlers;
1443
+ /**
1444
+ * When synchronous, only one frame is processed at a time by the capture mode, the frame source will wait until the
1445
+ * frame data is back to send the next frame.
1446
+ *
1447
+ * IdCapture uses the synchronous flow because BlinkID only processes one frame at a time.
1448
+ * MatrixScan and other barcode modes usually use the asynchronous flow because they can use multi-threading.
1449
+ */
1450
+ private _useSynchronousFrameFlow;
1451
+ private static _sharedInstance;
1452
+ static get sharedInstance(): DataCaptureContext;
1453
+ /**
1454
+ * Get the current state of the DataCaptureContext initialization
1455
+ */
1456
+ protected static get currentState(): DataCaptureContextState;
1457
+ /**
1458
+ * Check if the context is ready for use
1459
+ */
1460
+ protected static get isReady(): boolean;
1461
+ /**
1462
+ * Check if initialization is in progress
1463
+ */
1464
+ protected static get isInitializing(): boolean;
1465
+ /**
1466
+ * Add a listener to state changes
1467
+ */
1468
+ protected static addStateListener(listener: (currentState: DataCaptureContextState, previousState: DataCaptureContextState, context?: any) => void): void;
1469
+ /**
1470
+ * Remove a state change listener
1471
+ */
1472
+ protected static removeStateListener(listener: (currentState: DataCaptureContextState, previousState: DataCaptureContextState, context?: any) => void): void;
1473
+ private initializeWithOptions;
1474
+ get frameSource(): FrameSource | null;
1475
+ private get workerCommand();
1476
+ static forLicenseKey(licenseKey: string, options: DataCaptureContextCreationOptions): Promise<DataCaptureContext>;
1477
+ private static internalConfigure;
1478
+ /**
1479
+ * Initialize the DataCapture SDK for Electron applications using a license data path.
1480
+ * This method handles the Electron-specific license key retrieval logic.
1481
+ *
1482
+ * @param licenseDataPath - Path to the license data file in the Electron app
1483
+ * @param options - Configuration options for the DataCapture SDK
1484
+ * @returns Promise resolving to the DataCaptureContext instance
1485
+ */
1486
+ static forLicenseKeyInElectronPath(licenseDataPath: string, options: DataCaptureContextCreationOptions): Promise<DataCaptureContext>;
1487
+ private static updateViewsWithProgress;
1488
+ private static getOverridesFromQueryString;
1489
+ private static validateOptions;
1490
+ private static loadModules;
1491
+ static getOpenSourceSoftwareLicenseInfo(): Promise<OpenSourceSoftwareLicenseInfo>;
1492
+ /**
1493
+ * Disconnect the current frame source from the context and connect the new one. This process can happen multiple
1494
+ * times for the same frame source because of its initialisation (The mirroring info of a camera is only available
1495
+ * when it has started for example).
1496
+ * Trigger the "didChangeFrameSource" listeners only if the new frame source is different than the old one.
1497
+ */
1498
+ setFrameSource(frameSource: FrameSource | null): Promise<void>;
1499
+ addListener(listener: DataCaptureContextListener): void;
1500
+ flushAnalytics(): Promise<void>;
1501
+ removeListener(listener: DataCaptureContextListener): void;
1502
+ addMode(mode: DataCaptureMode): Promise<void>;
1503
+ removeMode(mode: DataCaptureMode): Promise<void>;
1504
+ setMode(mode: DataCaptureMode): Promise<void>;
1505
+ removeCurrentMode(): Promise<void>;
1506
+ /**
1507
+ * @deprecated Use removeCurrentMode instead.
1508
+ */
1509
+ removeAllModes(): Promise<void>;
1510
+ dispose(): Promise<void>;
1511
+ applySettings(settings: DataCaptureContextSettings): Promise<void>;
1512
+ toJSONObject(): DataCaptureContextJSON;
1513
+ private getView;
1514
+ private setView;
1515
+ private getAppName;
1516
+ private urlToHostname;
1517
+ private getParentDomain;
1518
+ private createContext;
1519
+ private subscribeToVisibilityChange;
1520
+ private unsubscribeToVisibilityChange;
1521
+ private requestFrameData;
1522
+ private performanceMark;
1523
+ private sendFrameToProcessor;
1524
+ private sendFrameToHandlers;
1525
+ private sendFrameToSDC;
1526
+ private registerFrameHandler;
1527
+ private unregisterFrameHandler;
1528
+ private onVisibilityChange;
1529
+ private onWorkerMessage;
1530
+ private subscribeToCameraManagerEvents;
1531
+ private reportCameraProperties;
1532
+ private onCameraAccessError;
1533
+ private update;
1534
+ private updateContext;
1535
+ private getViewInfo;
1536
+ private getMirrorAxisForFrameSource;
1537
+ private addComponent;
1538
+ private addNativeOverlay;
1539
+ private removeNativeOverlay;
1540
+ private subscribeToWorkerMessages;
1541
+ private unsubscribeToWorkerMessages;
1542
+ private hasEnabledMode;
1543
+ /**
1544
+ * Some capture modes process frames synchronously, like IdCapture. Other can process multiple frames
1545
+ * in parallel, like MatrixScan. We inform the CameraManager how to process frames.
1546
+ */
1547
+ private updateCameraFrameFlow;
1548
+ protected isFeatureSupported(feature: LicensedFeature): Promise<boolean>;
1843
1549
  }
1844
1550
 
1845
- export { type AugmentedWorker as $, type PrivateFrameHandler as A, DataCaptureContext$1 as B, CameraPosition as C, DataCaptureLoader as D, type DataCaptureContextListener as E, FocusGestureStrategy as F, type ContextStatusJSON as G, ContextStatus as H, PrivateMirrorAxis as I, type DataCaptureOverlay as J, type DataCaptureViewListener as K, type DataCaptureViewJSON as L, type DataCaptureViewConnectOptions as M, DataCaptureView$1 as N, type FrameData as O, type PrivateChangeSet as P, type PrivateLoadableFrameData as Q, convertToPublicFrameData as R, type DataCaptureLoaderOptions as S, TorchState as T, HintPresenter as U, VideoResolution as V, type PerformanceMetrics as W, DataCaptureEngine as X, type Module as Y, type GenericHint as Z, type AnyDataCaptureActionMessage as _, type FrameSource as a, HintTextAlignment as a$, type ModuleHandler as a0, type DataCaptureCallbackMessage as a1, type DataCaptureActionMessageKey as a2, type EngineWorkerResponse as a3, type ExtractCentaurusLicenseResponse as a4, type RequestFrameDataResponse as a5, type IsFeatureSupportedResponse as a6, type GetViewfinderInfo as a7, type GetOpenSourceSoftwareLicenseInfoResponse as a8, type WorkerResponse as a9, type PerformanceMetricsReportMessage as aA, type DidTapTrackedBarcode as aB, type OnFrameProcessingStartedMessage as aC, type OnFrameProcessingFinishedMessage as aD, type OnFrameSkippedMessage as aE, type ShowToastMessage as aF, type HideToastMessage as aG, type ShowGuidanceMessage as aH, type HideGuidanceMessage as aI, type StartUpdateTimerMessage as aJ, type StopUpdateTimerMessage as aK, type PayloadForCommand as aL, type DataCaptureWorker as aM, type EmscriptenClassHandle as aN, type DataCaptureContext as aO, type DataCaptureImageBufferFrameSource as aP, type GestureListener as aQ, type GestureRecognizer as aR, type DataCaptureView as aS, type JSONParseable as aT, type DataCaptureContextDeserializerResult as aU, type DataCaptureContextDeserializer as aV, type CaptureModeDeserializerInstance as aW, type ModuleMirrorAxis as aX, type Vector as aY, type WasmFrameData as aZ, HintFont as a_, type LoadLibraryDataCaptureAction as aa, type CreateContextDataCaptureAction as ab, type SetFrameSourceDataCaptureAction as ac, type ProcessFrameDataCaptureAction as ad, type RequestFrameDataDataCaptureAction as ae, type DeleteFrameDataDataCaptureAction as af, type VisibilityChangeAction as ag, type IsFeatureSupportedAction as ah, type UpdateContextDataCaptureAction as ai, type DisposeDataCaptureAction as aj, type FlushAnalyticsDataCaptureAction as ak, type ReportCameraPropertiesDataCaptureAction as al, type SetLogLevelDataCaptureAction as am, type ExtractCentaurusLicenseDataCaptureAction as an, type OnTapAction as ao, type HintPresenterV2updateAction as ap, type GetViewfinderInfoAction as aq, type GetOpenSourceSoftwareLicenseInfoAction as ar, type AddNativeOverlayAction as as, type RemoveNativeOverlayAction as at, type DataCaptureCallbackMessageKeys as au, type SuccessFeedbackWorkerMessage as av, type ShowHintWorkerMessage as aw, type UpdateHintWorkerMessage as ax, type IsFeatureSupportedMessage as ay, type HideHintWorkerMessage as az, FrameSourceState as b, HintWidth as b0, HintHeight as b1, HintCornerStyle as b2, HintIcon as b3, HintAnchor as b4, type HintStyle as b5, GuidanceHintAnchor as b6, GuidanceHintStyle as b7, type GuidanceHint as b8, ToastHintStyle as b9, type GUI as bA, CameraManagerEvent as bB, type CameraManagerEventParameters as bC, CameraManager as bD, type ToastHint as ba, LicensedFeature as bb, type HintPresenterV2 as bc, type PlatformHintPresenter as bd, type LoadLibraryParameters as be, type CreateContextParameters as bf, type UpdateContextParameters as bg, type SetFrameSourceParameters as bh, type ProcessFrameParameters as bi, type ReportCameraPropertiesParameters as bj, type WorkerFunctions as bk, FrameReaderAbstract as bl, ColorType as bm, type PoolCapacityOptions as bn, type FrameCapture as bo, FrameReader as bp, CameraPosition$1 as bq, CameraResolutionConstraint$1 as br, AspectRatio as bs, type DeviceCamera$1 as bt, CameraAccess$1 as bu, HintPresenterEvents as bv, MeteringMode as bw, CameraResolutionConstraint as bx, type ExtendedMediaTrackCapabilities as by, type ExtendedMediaTrackConstraintSet as bz, type FrameSourceListener as c, type FrameSourceJSON as d, type CameraJSON as e, type VideoFrameResolution as f, Camera as g, CameraAccess as h, type DeviceCamera as i, type CameraSettingsJSONBase as j, type CameraSettingsFromJSON as k, type CameraSettingsJSON as l, isCameraFrameSource as m, CameraSettings as n, type Change as o, type DataCaptureMode as p, type PrivateDataCaptureMode as q, type DataCaptureModeJSON as r, type PrivateDataCaptureComponent as s, type DataCaptureComponentJSON as t, type DataCaptureComponent as u, type PrivateDataCaptureContextOptions as v, type PrivateDataCaptureContext as w, type DataCaptureContextCreationOptions as x, type DataCaptureContextJSON as y, type PrivateFrameHandlerResponse as z };
1551
+ export { type RequestFrameDataDataCaptureAction as $, DataCaptureLoader as A, DataCaptureEngine as B, type Change as C, type DataCaptureContextState as D, type Module as E, type FrameData as F, type PerformanceMetrics as G, HintPresenter as H, type GenericHint as I, type AnyDataCaptureActionMessage as J, type AugmentedWorker as K, type ModuleHandler as L, type ModuleLoaderOptions as M, type DataCaptureCallbackMessage as N, type DataCaptureActionMessageKey as O, type PrivateChangeSet as P, type EngineWorkerResponse as Q, type ExtractCentaurusLicenseResponse as R, type RequestFrameDataResponse as S, type IsFeatureSupportedResponse as T, type GetViewfinderInfo as U, type GetOpenSourceSoftwareLicenseInfoResponse as V, type WorkerResponse as W, type LoadLibraryDataCaptureAction as X, type CreateContextDataCaptureAction as Y, type SetFrameSourceDataCaptureAction as Z, type ProcessFrameDataCaptureAction as _, type DataCaptureMode as a, type LoadLibraryParameters as a$, type DeleteFrameDataDataCaptureAction as a0, type VisibilityChangeAction as a1, type IsFeatureSupportedAction as a2, type UpdateContextDataCaptureAction as a3, type DisposeDataCaptureAction as a4, type FlushAnalyticsDataCaptureAction as a5, type ReportCameraPropertiesDataCaptureAction as a6, type SetLogLevelDataCaptureAction as a7, type ExtractCentaurusLicenseDataCaptureAction as a8, type OnTapAction as a9, type DataCaptureImageBufferFrameSource as aA, type GestureListener as aB, type GestureRecognizer as aC, type DataCaptureView as aD, type JSONParseable as aE, type DataCaptureContextDeserializerResult as aF, type DataCaptureContextDeserializer as aG, type CaptureModeDeserializerInstance as aH, type ModuleMirrorAxis as aI, type Vector as aJ, type WasmFrameData as aK, HintFont as aL, HintTextAlignment as aM, HintWidth as aN, HintHeight as aO, HintCornerStyle as aP, HintIcon as aQ, HintAnchor as aR, type HintStyle as aS, GuidanceHintAnchor as aT, GuidanceHintStyle as aU, type GuidanceHint as aV, ToastHintStyle as aW, type ToastHint as aX, LicensedFeature as aY, type HintPresenterV2 as aZ, type PlatformHintPresenter as a_, type HintPresenterV2updateAction as aa, type GetViewfinderInfoAction as ab, type GetOpenSourceSoftwareLicenseInfoAction as ac, type AddNativeOverlayAction as ad, type RemoveNativeOverlayAction as ae, type DataCaptureCallbackMessageKeys as af, type SuccessFeedbackWorkerMessage as ag, type ShowHintWorkerMessage as ah, type UpdateHintWorkerMessage as ai, type IsFeatureSupportedMessage as aj, type HideHintWorkerMessage as ak, type PerformanceMetricsReportMessage as al, type DidTapTrackedBarcode as am, type OnFrameProcessingStartedMessage as an, type OnFrameProcessingFinishedMessage as ao, type OnFrameSkippedMessage as ap, type ShowToastMessage as aq, type HideToastMessage as ar, type ShowGuidanceMessage as as, type HideGuidanceMessage as at, type StartUpdateTimerMessage as au, type StopUpdateTimerMessage as av, type PayloadForCommand as aw, type DataCaptureWorker as ax, type EmscriptenClassHandle as ay, type DataCaptureContext$1 as az, type PrivateDataCaptureMode as b, type CreateContextParameters as b0, type UpdateContextParameters as b1, type SetFrameSourceParameters as b2, type ProcessFrameParameters as b3, type ReportCameraPropertiesParameters as b4, type WorkerFunctions as b5, FrameReaderAbstract as b6, ColorType as b7, type PoolCapacityOptions as b8, type FrameCapture as b9, FrameReader as ba, MeteringMode as bb, CameraResolutionConstraint as bc, type ExtendedMediaTrackCapabilities as bd, type ExtendedMediaTrackConstraintSet as be, type GUI as bf, CameraManagerEvent as bg, type CameraManagerEventParameters as bh, CameraManager as bi, HintPresenterEvents as bj, type DataCaptureModeJSON as c, type PrivateDataCaptureComponent as d, type DataCaptureComponentJSON as e, type DataCaptureComponent as f, type PrivateDataCaptureContextOptions as g, type PrivateDataCaptureContext as h, type DataCaptureContextCreationOptions as i, type DataCaptureContextJSON as j, type PrivateFrameHandlerResponse as k, type PrivateFrameHandler as l, DataCaptureContext as m, type DataCaptureContextListener as n, type ContextStatusJSON as o, ContextStatus as p, PrivateMirrorAxis as q, type DataCaptureOverlay as r, type DataCaptureViewListener as s, type DataCaptureViewJSON as t, type DataCaptureViewConnectOptions as u, DataCaptureView$1 as v, type PrivateLoadableFrameData as w, convertToPublicFrameData as x, type ModuleLoader as y, type DataCaptureLoaderOptions as z };