@nice2dev/ui-tools 1.0.10

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 (158) hide show
  1. package/README.md +36 -0
  2. package/dist/access-control.d.ts +726 -0
  3. package/dist/access-control.d.ts.map +1 -0
  4. package/dist/accessibility-i18n.d.ts +1017 -0
  5. package/dist/accessibility-i18n.d.ts.map +1 -0
  6. package/dist/ai-assistant.d.ts +263 -0
  7. package/dist/ai-assistant.d.ts.map +1 -0
  8. package/dist/ai-playgrounds.d.ts +842 -0
  9. package/dist/ai-playgrounds.d.ts.map +1 -0
  10. package/dist/alerting-incidents.d.ts +558 -0
  11. package/dist/alerting-incidents.d.ts.map +1 -0
  12. package/dist/api-designer.d.ts +1568 -0
  13. package/dist/api-designer.d.ts.map +1 -0
  14. package/dist/api-testing.d.ts +1146 -0
  15. package/dist/api-testing.d.ts.map +1 -0
  16. package/dist/apm-profiling.d.ts +656 -0
  17. package/dist/apm-profiling.d.ts.map +1 -0
  18. package/dist/artifacts.d.ts +421 -0
  19. package/dist/artifacts.d.ts.map +1 -0
  20. package/dist/audit-compliance.d.ts +752 -0
  21. package/dist/audit-compliance.d.ts.map +1 -0
  22. package/dist/certificates.d.ts +256 -0
  23. package/dist/certificates.d.ts.map +1 -0
  24. package/dist/chart-builder.d.ts +1404 -0
  25. package/dist/chart-builder.d.ts.map +1 -0
  26. package/dist/cloud-instances.d.ts +169 -0
  27. package/dist/cloud-instances.d.ts.map +1 -0
  28. package/dist/config-management.d.ts +350 -0
  29. package/dist/config-management.d.ts.map +1 -0
  30. package/dist/containers.d.ts +256 -0
  31. package/dist/containers.d.ts.map +1 -0
  32. package/dist/dashboard-designer.d.ts +1238 -0
  33. package/dist/dashboard-designer.d.ts.map +1 -0
  34. package/dist/data-management.d.ts +496 -0
  35. package/dist/data-management.d.ts.map +1 -0
  36. package/dist/data-pipeline.d.ts +1105 -0
  37. package/dist/data-pipeline.d.ts.map +1 -0
  38. package/dist/data-warehouse.d.ts +1097 -0
  39. package/dist/data-warehouse.d.ts.map +1 -0
  40. package/dist/dataset-management.d.ts +782 -0
  41. package/dist/dataset-management.d.ts.map +1 -0
  42. package/dist/db-adapters.d.ts +704 -0
  43. package/dist/db-adapters.d.ts.map +1 -0
  44. package/dist/db-admin.d.ts +699 -0
  45. package/dist/db-admin.d.ts.map +1 -0
  46. package/dist/db-designer.d.ts +366 -0
  47. package/dist/db-designer.d.ts.map +1 -0
  48. package/dist/debugger.d.ts +356 -0
  49. package/dist/debugger.d.ts.map +1 -0
  50. package/dist/device-management.d.ts +871 -0
  51. package/dist/device-management.d.ts.map +1 -0
  52. package/dist/distributed-tracing.d.ts +427 -0
  53. package/dist/distributed-tracing.d.ts.map +1 -0
  54. package/dist/dns-management.d.ts +215 -0
  55. package/dist/dns-management.d.ts.map +1 -0
  56. package/dist/download-manager.d.ts +271 -0
  57. package/dist/download-manager.d.ts.map +1 -0
  58. package/dist/download-torrent.d.ts +1062 -0
  59. package/dist/download-torrent.d.ts.map +1 -0
  60. package/dist/edge-computing.d.ts +720 -0
  61. package/dist/edge-computing.d.ts.map +1 -0
  62. package/dist/education.d.ts +1135 -0
  63. package/dist/education.d.ts.map +1 -0
  64. package/dist/email-template.d.ts +1141 -0
  65. package/dist/email-template.d.ts.map +1 -0
  66. package/dist/erp-enterprise.d.ts +1270 -0
  67. package/dist/erp-enterprise.d.ts.map +1 -0
  68. package/dist/form-builder.d.ts +1117 -0
  69. package/dist/form-builder.d.ts.map +1 -0
  70. package/dist/game-engine-advanced.d.ts +1049 -0
  71. package/dist/game-engine-advanced.d.ts.map +1 -0
  72. package/dist/git.d.ts +415 -0
  73. package/dist/git.d.ts.map +1 -0
  74. package/dist/hardware-integration.d.ts +966 -0
  75. package/dist/hardware-integration.d.ts.map +1 -0
  76. package/dist/iac.d.ts +318 -0
  77. package/dist/iac.d.ts.map +1 -0
  78. package/dist/icon-tools.d.ts +1023 -0
  79. package/dist/icon-tools.d.ts.map +1 -0
  80. package/dist/ide.d.ts +322 -0
  81. package/dist/ide.d.ts.map +1 -0
  82. package/dist/index.cjs +2 -0
  83. package/dist/index.cjs.map +1 -0
  84. package/dist/index.d.ts +176 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.mjs +1887 -0
  87. package/dist/index.mjs.map +1 -0
  88. package/dist/integration-platform.d.ts +857 -0
  89. package/dist/integration-platform.d.ts.map +1 -0
  90. package/dist/kubernetes.d.ts +278 -0
  91. package/dist/kubernetes.d.ts.map +1 -0
  92. package/dist/life-management.d.ts +1132 -0
  93. package/dist/life-management.d.ts.map +1 -0
  94. package/dist/log-management.d.ts +473 -0
  95. package/dist/log-management.d.ts.map +1 -0
  96. package/dist/mathematics.d.ts +870 -0
  97. package/dist/mathematics.d.ts.map +1 -0
  98. package/dist/message-queue.d.ts +1006 -0
  99. package/dist/message-queue.d.ts.map +1 -0
  100. package/dist/metrics-dashboard.d.ts +596 -0
  101. package/dist/metrics-dashboard.d.ts.map +1 -0
  102. package/dist/mobile-components.d.ts +766 -0
  103. package/dist/mobile-components.d.ts.map +1 -0
  104. package/dist/model-deployment.d.ts +787 -0
  105. package/dist/model-deployment.d.ts.map +1 -0
  106. package/dist/model-registry.d.ts +740 -0
  107. package/dist/model-registry.d.ts.map +1 -0
  108. package/dist/model-training.d.ts +706 -0
  109. package/dist/model-training.d.ts.map +1 -0
  110. package/dist/network-config.d.ts +334 -0
  111. package/dist/network-config.d.ts.map +1 -0
  112. package/dist/network-monitoring.d.ts +291 -0
  113. package/dist/network-monitoring.d.ts.map +1 -0
  114. package/dist/pdf-tools.d.ts +1003 -0
  115. package/dist/pdf-tools.d.ts.map +1 -0
  116. package/dist/pipelines.d.ts +250 -0
  117. package/dist/pipelines.d.ts.map +1 -0
  118. package/dist/remote-desktop.d.ts +207 -0
  119. package/dist/remote-desktop.d.ts.map +1 -0
  120. package/dist/report-designer.d.ts +1153 -0
  121. package/dist/report-designer.d.ts.map +1 -0
  122. package/dist/scada-industrial.d.ts +848 -0
  123. package/dist/scada-industrial.d.ts.map +1 -0
  124. package/dist/scientific-research.d.ts +1149 -0
  125. package/dist/scientific-research.d.ts.map +1 -0
  126. package/dist/secret-management.d.ts +617 -0
  127. package/dist/secret-management.d.ts.map +1 -0
  128. package/dist/security-scanning.d.ts +714 -0
  129. package/dist/security-scanning.d.ts.map +1 -0
  130. package/dist/self-service-analytics.d.ts +1208 -0
  131. package/dist/self-service-analytics.d.ts.map +1 -0
  132. package/dist/sensor-dashboard.d.ts +845 -0
  133. package/dist/sensor-dashboard.d.ts.map +1 -0
  134. package/dist/server-management.d.ts +331 -0
  135. package/dist/server-management.d.ts.map +1 -0
  136. package/dist/smart-home.d.ts +861 -0
  137. package/dist/smart-home.d.ts.map +1 -0
  138. package/dist/spreadsheet.d.ts +1043 -0
  139. package/dist/spreadsheet.d.ts.map +1 -0
  140. package/dist/sql-editor.d.ts +402 -0
  141. package/dist/sql-editor.d.ts.map +1 -0
  142. package/dist/terminal.d.ts +245 -0
  143. package/dist/terminal.d.ts.map +1 -0
  144. package/dist/testing-qa.d.ts +1013 -0
  145. package/dist/testing-qa.d.ts.map +1 -0
  146. package/dist/torrent-client.d.ts +298 -0
  147. package/dist/torrent-client.d.ts.map +1 -0
  148. package/dist/traceless.d.ts +759 -0
  149. package/dist/traceless.d.ts.map +1 -0
  150. package/dist/virtual-machines.d.ts +199 -0
  151. package/dist/virtual-machines.d.ts.map +1 -0
  152. package/dist/visual-scripting.d.ts +381 -0
  153. package/dist/visual-scripting.d.ts.map +1 -0
  154. package/dist/word-processor.d.ts +1124 -0
  155. package/dist/word-processor.d.ts.map +1 -0
  156. package/dist/workspace.d.ts +333 -0
  157. package/dist/workspace.d.ts.map +1 -0
  158. package/package.json +62 -0
@@ -0,0 +1,966 @@
1
+ /**
2
+ * @file hardware-integration.ts
3
+ * @module @nice2dev/ui-tools
4
+ * @description PRO-22 — Hardware Integration
5
+ *
6
+ * Types for barcode/QR scanning, printing, payment terminals,
7
+ * and measurement devices.
8
+ */
9
+ /** Device connection type */
10
+ export type HardwareConnectionType = 'usb' | 'bluetooth' | 'bluetooth_le' | 'serial' | 'network' | 'hid' | 'wifi_direct';
11
+ /** Device status */
12
+ export type HardwareDeviceStatus = 'connected' | 'disconnected' | 'connecting' | 'error' | 'busy' | 'ready';
13
+ /** Hardware device */
14
+ export interface HardwareDevice {
15
+ id: string;
16
+ name: string;
17
+ type: HardwareDeviceType;
18
+ connection: HardwareConnectionType;
19
+ status: HardwareDeviceStatus;
20
+ address?: string;
21
+ vendor?: string;
22
+ model?: string;
23
+ serialNumber?: string;
24
+ firmwareVersion?: string;
25
+ lastSeen?: Date;
26
+ capabilities?: string[];
27
+ }
28
+ /** Hardware device type */
29
+ export type HardwareDeviceType = 'scanner' | 'printer' | 'payment_terminal' | 'scale' | 'temperature_sensor' | 'dimensioner' | 'serial_device' | 'custom';
30
+ /** Barcode scanner config */
31
+ export interface BarcodeScannerConfig {
32
+ mode: ScannerMode;
33
+ source: ScannerSource;
34
+ symbologies?: BarcodeSymbology[];
35
+ decoding?: DecodingConfig;
36
+ camera?: CameraScanConfig;
37
+ hardware?: HardwareScanConfig;
38
+ feedback?: ScanFeedback;
39
+ history?: ScanHistoryConfig;
40
+ }
41
+ /** Scanner mode */
42
+ export type ScannerMode = 'single' | 'continuous' | 'batch';
43
+ /** Scanner source */
44
+ export type ScannerSource = 'camera' | 'hardware' | 'auto';
45
+ /** Barcode symbology */
46
+ export type BarcodeSymbology = 'code128' | 'code39' | 'code93' | 'codabar' | 'ean8' | 'ean13' | 'upc_a' | 'upc_e' | 'itf' | 'itf14' | 'qr_code' | 'data_matrix' | 'aztec' | 'pdf417' | 'maxicode' | 'gs1_128' | 'gs1_databar';
47
+ /** Decoding config */
48
+ export interface DecodingConfig {
49
+ tryHarder?: boolean;
50
+ characterSet?: string;
51
+ pureBarcode?: boolean;
52
+ assumeGS1?: boolean;
53
+ allowedLengths?: number[];
54
+ }
55
+ /** Camera scan config */
56
+ export interface CameraScanConfig {
57
+ facing?: 'front' | 'back';
58
+ resolution?: CameraResolution;
59
+ torch?: boolean;
60
+ autofocus?: boolean;
61
+ zoom?: number;
62
+ scanArea?: ScanArea;
63
+ overlay?: ScanOverlay;
64
+ }
65
+ /** Camera resolution */
66
+ export interface CameraResolution {
67
+ width: number;
68
+ height: number;
69
+ }
70
+ /** Scan area */
71
+ export interface ScanArea {
72
+ x: number;
73
+ y: number;
74
+ width: number;
75
+ height: number;
76
+ }
77
+ /** Scan overlay */
78
+ export interface ScanOverlay {
79
+ type: 'rectangle' | 'square' | 'viewfinder' | 'custom';
80
+ color?: string;
81
+ strokeWidth?: number;
82
+ cornerRadius?: number;
83
+ showHint?: boolean;
84
+ hintText?: string;
85
+ }
86
+ /** Hardware scan config */
87
+ export interface HardwareScanConfig {
88
+ deviceId?: string;
89
+ autoDetect?: boolean;
90
+ vendors?: ScannerVendor[];
91
+ triggerMode?: TriggerMode;
92
+ prefix?: string;
93
+ suffix?: string;
94
+ terminator?: string;
95
+ }
96
+ /** Scanner vendor */
97
+ export type ScannerVendor = 'honeywell' | 'zebra' | 'datalogic' | 'symbol' | 'opticon' | 'socket' | 'generic';
98
+ /** Trigger mode */
99
+ export type TriggerMode = 'hardware' | 'software' | 'continuous';
100
+ /** Scan feedback */
101
+ export interface ScanFeedback {
102
+ sound?: boolean;
103
+ vibration?: boolean;
104
+ visual?: boolean;
105
+ successSound?: string;
106
+ errorSound?: string;
107
+ }
108
+ /** Scan history config */
109
+ export interface ScanHistoryConfig {
110
+ enabled?: boolean;
111
+ maxItems?: number;
112
+ persist?: boolean;
113
+ deduplication?: boolean;
114
+ deduplicationWindow?: number;
115
+ }
116
+ /** Scan result */
117
+ export interface ScanResult {
118
+ id: string;
119
+ data: string;
120
+ format: BarcodeSymbology;
121
+ timestamp: Date;
122
+ source: ScannerSource;
123
+ rawBytes?: Uint8Array;
124
+ metadata?: ScanMetadata;
125
+ }
126
+ /** Scan metadata */
127
+ export interface ScanMetadata {
128
+ orientation?: number;
129
+ errorCorrectionLevel?: string;
130
+ structuredAppend?: StructuredAppend;
131
+ gs1Data?: GS1Data;
132
+ }
133
+ /** Structured append */
134
+ export interface StructuredAppend {
135
+ index: number;
136
+ count: number;
137
+ parity?: number;
138
+ }
139
+ /** GS1 data */
140
+ export interface GS1Data {
141
+ applicationIdentifiers: GS1AI[];
142
+ rawGTIN?: string;
143
+ productInfo?: GS1ProductInfo;
144
+ }
145
+ /** GS1 application identifier */
146
+ export interface GS1AI {
147
+ ai: string;
148
+ value: string;
149
+ description?: string;
150
+ }
151
+ /** GS1 product info */
152
+ export interface GS1ProductInfo {
153
+ gtin?: string;
154
+ serialNumber?: string;
155
+ batchNumber?: string;
156
+ expirationDate?: Date;
157
+ productionDate?: Date;
158
+ weight?: number;
159
+ count?: number;
160
+ }
161
+ /** Barcode generator config */
162
+ export interface BarcodeGeneratorConfig {
163
+ format: BarcodeSymbology;
164
+ data: string;
165
+ width?: number;
166
+ height?: number;
167
+ margin?: number;
168
+ color?: string;
169
+ background?: string;
170
+ errorCorrection?: ErrorCorrectionLevel;
171
+ encoding?: BarcodeEncoding;
172
+ output?: BarcodeOutput;
173
+ }
174
+ /** Error correction level */
175
+ export type ErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
176
+ /** Barcode encoding */
177
+ export interface BarcodeEncoding {
178
+ characterSet?: string;
179
+ fnc1Mode?: 'gs1' | 'aim';
180
+ eci?: number;
181
+ }
182
+ /** Barcode output */
183
+ export interface BarcodeOutput {
184
+ format: 'svg' | 'png' | 'canvas' | 'dataurl';
185
+ scale?: number;
186
+ includeText?: boolean;
187
+ textFont?: string;
188
+ textSize?: number;
189
+ textPosition?: 'top' | 'bottom';
190
+ }
191
+ /** Generated barcode */
192
+ export interface GeneratedBarcode {
193
+ data: string;
194
+ format: BarcodeSymbology;
195
+ output: string | ImageData | HTMLCanvasElement;
196
+ outputFormat: BarcodeOutput['format'];
197
+ width: number;
198
+ height: number;
199
+ }
200
+ /** Print config */
201
+ export interface PrintConfig {
202
+ printerType: PrinterType;
203
+ printer?: PrinterSelection;
204
+ document?: DocumentPrintConfig;
205
+ label?: LabelPrintConfig;
206
+ receipt?: ReceiptPrintConfig;
207
+ queue?: PrintQueueConfig;
208
+ }
209
+ /** Printer type */
210
+ export type PrinterType = 'document' | 'label' | 'receipt' | 'pos';
211
+ /** Printer selection */
212
+ export interface PrinterSelection {
213
+ id?: string;
214
+ name?: string;
215
+ autoSelect?: boolean;
216
+ preferredConnection?: HardwareConnectionType;
217
+ }
218
+ /** Document print config */
219
+ export interface DocumentPrintConfig {
220
+ copies?: number;
221
+ collate?: boolean;
222
+ duplex?: DuplexMode;
223
+ orientation?: PageOrientation;
224
+ paperSize?: PaperSize;
225
+ margins?: PrintMargins;
226
+ colorMode?: ColorMode;
227
+ quality?: PrintQuality;
228
+ range?: PageRange;
229
+ scaling?: PrintScaling;
230
+ }
231
+ /** Duplex mode */
232
+ export type DuplexMode = 'none' | 'long_edge' | 'short_edge';
233
+ /** Page orientation */
234
+ export type PageOrientation = 'portrait' | 'landscape' | 'auto';
235
+ /** Paper size */
236
+ export type PaperSize = 'letter' | 'legal' | 'a4' | 'a5' | 'a6' | 'custom';
237
+ /** Print margins */
238
+ export interface PrintMargins {
239
+ top: number;
240
+ bottom: number;
241
+ left: number;
242
+ right: number;
243
+ unit: 'mm' | 'in' | 'px';
244
+ }
245
+ /** Color mode */
246
+ export type ColorMode = 'color' | 'grayscale' | 'monochrome';
247
+ /** Print quality */
248
+ export type PrintQuality = 'draft' | 'normal' | 'high' | 'photo';
249
+ /** Page range */
250
+ export interface PageRange {
251
+ from?: number;
252
+ to?: number;
253
+ pages?: number[];
254
+ }
255
+ /** Print scaling */
256
+ export interface PrintScaling {
257
+ mode: 'none' | 'fit' | 'shrink' | 'custom';
258
+ factor?: number;
259
+ }
260
+ /** Label print config */
261
+ export interface LabelPrintConfig {
262
+ labelSize: LabelSize;
263
+ mediaType?: LabelMediaType;
264
+ printSpeed?: number;
265
+ darkness?: number;
266
+ orientation?: LabelOrientation;
267
+ template?: LabelTemplate;
268
+ batch?: LabelBatch;
269
+ }
270
+ /** Label size */
271
+ export interface LabelSize {
272
+ width: number;
273
+ height: number;
274
+ unit: 'mm' | 'in';
275
+ gap?: number;
276
+ offset?: LabelOffset;
277
+ }
278
+ /** Label offset */
279
+ export interface LabelOffset {
280
+ x: number;
281
+ y: number;
282
+ }
283
+ /** Label media type */
284
+ export type LabelMediaType = 'direct_thermal' | 'thermal_transfer' | 'continuous' | 'die_cut' | 'black_mark';
285
+ /** Label orientation */
286
+ export type LabelOrientation = 0 | 90 | 180 | 270;
287
+ /** Label template */
288
+ export interface LabelTemplate {
289
+ id: string;
290
+ name: string;
291
+ language: LabelLanguage;
292
+ content: string;
293
+ variables?: LabelVariable[];
294
+ }
295
+ /** Label language */
296
+ export type LabelLanguage = 'zpl' | 'epl' | 'tspl' | 'escpos' | 'html';
297
+ /** Label variable */
298
+ export interface LabelVariable {
299
+ name: string;
300
+ type: 'text' | 'barcode' | 'qr' | 'image' | 'date' | 'counter';
301
+ default?: string;
302
+ format?: string;
303
+ position?: LabelPosition;
304
+ }
305
+ /** Label position */
306
+ export interface LabelPosition {
307
+ x: number;
308
+ y: number;
309
+ width?: number;
310
+ height?: number;
311
+ rotation?: LabelOrientation;
312
+ }
313
+ /** Label batch */
314
+ export interface LabelBatch {
315
+ data: LabelData[];
316
+ copies?: number;
317
+ separator?: boolean;
318
+ }
319
+ /** Label data */
320
+ export interface LabelData {
321
+ variables: Record<string, string | number | boolean>;
322
+ copies?: number;
323
+ }
324
+ /** Receipt print config */
325
+ export interface ReceiptPrintConfig {
326
+ paperWidth: ReceiptPaperWidth;
327
+ encoding?: ReceiptEncoding;
328
+ characterSet?: string;
329
+ lineSpacing?: number;
330
+ cutMode?: CutMode;
331
+ openDrawer?: boolean;
332
+ template?: ReceiptTemplate;
333
+ }
334
+ /** Receipt paper width */
335
+ export type ReceiptPaperWidth = 58 | 80;
336
+ /** Receipt encoding */
337
+ export type ReceiptEncoding = 'utf8' | 'cp437' | 'cp850' | 'cp1252';
338
+ /** Cut mode */
339
+ export type CutMode = 'full' | 'partial' | 'none';
340
+ /** Receipt template */
341
+ export interface ReceiptTemplate {
342
+ header?: ReceiptSection;
343
+ body?: ReceiptContent[];
344
+ footer?: ReceiptSection;
345
+ }
346
+ /** Receipt section */
347
+ export interface ReceiptSection {
348
+ logo?: ReceiptLogo;
349
+ lines?: ReceiptLine[];
350
+ }
351
+ /** Receipt logo */
352
+ export interface ReceiptLogo {
353
+ data: string;
354
+ width?: number;
355
+ alignment?: TextAlignment;
356
+ }
357
+ /** Receipt line */
358
+ export interface ReceiptLine {
359
+ type: 'text' | 'barcode' | 'qr' | 'divider' | 'space';
360
+ content?: string;
361
+ style?: ReceiptTextStyle;
362
+ barcode?: ReceiptBarcode;
363
+ }
364
+ /** Receipt text style */
365
+ export interface ReceiptTextStyle {
366
+ bold?: boolean;
367
+ underline?: boolean;
368
+ inverse?: boolean;
369
+ doubleWidth?: boolean;
370
+ doubleHeight?: boolean;
371
+ alignment?: TextAlignment;
372
+ font?: 'A' | 'B' | 'C';
373
+ }
374
+ /** Text alignment */
375
+ export type TextAlignment = 'left' | 'center' | 'right';
376
+ /** Receipt barcode */
377
+ export interface ReceiptBarcode {
378
+ symbology: BarcodeSymbology;
379
+ width?: number;
380
+ height?: number;
381
+ showText?: boolean;
382
+ }
383
+ /** Receipt content */
384
+ export interface ReceiptContent {
385
+ type: 'item' | 'subtotal' | 'total' | 'payment' | 'text' | 'table';
386
+ item?: ReceiptItem;
387
+ subtotal?: ReceiptSubtotal;
388
+ total?: ReceiptTotal;
389
+ payment?: ReceiptPayment;
390
+ text?: ReceiptLine;
391
+ table?: ReceiptTable;
392
+ }
393
+ /** Receipt item */
394
+ export interface ReceiptItem {
395
+ name: string;
396
+ quantity: number;
397
+ price: number;
398
+ total?: number;
399
+ discount?: number;
400
+ tax?: number;
401
+ }
402
+ /** Receipt subtotal */
403
+ export interface ReceiptSubtotal {
404
+ label: string;
405
+ amount: number;
406
+ }
407
+ /** Receipt total */
408
+ export interface ReceiptTotal {
409
+ label: string;
410
+ amount: number;
411
+ currency?: string;
412
+ taxDetails?: TaxDetail[];
413
+ }
414
+ /** Tax detail */
415
+ export interface TaxDetail {
416
+ rate: number;
417
+ net: number;
418
+ tax: number;
419
+ }
420
+ /** Receipt payment */
421
+ export interface ReceiptPayment {
422
+ method: string;
423
+ amount: number;
424
+ change?: number;
425
+ }
426
+ /** Receipt table */
427
+ export interface ReceiptTable {
428
+ columns: ReceiptColumn[];
429
+ rows: string[][];
430
+ }
431
+ /** Receipt column */
432
+ export interface ReceiptColumn {
433
+ width: number;
434
+ alignment?: TextAlignment;
435
+ }
436
+ /** Print queue config */
437
+ export interface PrintQueueConfig {
438
+ enabled?: boolean;
439
+ maxJobs?: number;
440
+ retryCount?: number;
441
+ retryDelay?: number;
442
+ persistence?: QueuePersistence;
443
+ }
444
+ /** Queue persistence */
445
+ export type QueuePersistence = 'memory' | 'localStorage' | 'indexeddb';
446
+ /** Print job */
447
+ export interface PrintJob {
448
+ id: string;
449
+ type: PrinterType;
450
+ status: PrintJobStatus;
451
+ printer?: string;
452
+ document?: string;
453
+ copies?: number;
454
+ pages?: number;
455
+ priority?: PrintPriority;
456
+ createdAt: Date;
457
+ startedAt?: Date;
458
+ completedAt?: Date;
459
+ error?: string;
460
+ progress?: PrintProgress;
461
+ }
462
+ /** Print job status */
463
+ export type PrintJobStatus = 'pending' | 'printing' | 'completed' | 'failed' | 'cancelled' | 'paused';
464
+ /** Print priority */
465
+ export type PrintPriority = 'low' | 'normal' | 'high' | 'urgent';
466
+ /** Print progress */
467
+ export interface PrintProgress {
468
+ currentPage: number;
469
+ totalPages: number;
470
+ percentage: number;
471
+ }
472
+ /** Payment terminal config */
473
+ export interface PaymentTerminalConfig {
474
+ provider: PaymentProvider;
475
+ connection: TerminalConnection;
476
+ terminal?: TerminalSelection;
477
+ transactions?: TransactionConfig;
478
+ display?: TerminalDisplay;
479
+ callbacks?: TerminalCallbacks;
480
+ }
481
+ /** Payment provider */
482
+ export type PaymentProvider = 'verifone' | 'ingenico' | 'pax' | 'sumup' | 'square' | 'stripe_terminal' | 'adyen' | 'worldpay' | 'clover' | 'generic';
483
+ /** Terminal connection */
484
+ export interface TerminalConnection {
485
+ type: HardwareConnectionType;
486
+ address?: string;
487
+ port?: number;
488
+ apiKey?: string;
489
+ locationId?: string;
490
+ timeout?: number;
491
+ }
492
+ /** Terminal selection */
493
+ export interface TerminalSelection {
494
+ id?: string;
495
+ serialNumber?: string;
496
+ label?: string;
497
+ autoSelect?: boolean;
498
+ }
499
+ /** Transaction config */
500
+ export interface TransactionConfig {
501
+ currency: string;
502
+ locale?: string;
503
+ tipEnabled?: boolean;
504
+ tipPresets?: TipPreset[];
505
+ cashbackEnabled?: boolean;
506
+ cashbackLimits?: CashbackLimits;
507
+ signatureRequired?: SignatureRequirement;
508
+ pinBypass?: boolean;
509
+ receiptMode?: ReceiptMode;
510
+ }
511
+ /** Tip preset */
512
+ export interface TipPreset {
513
+ percentage?: number;
514
+ amount?: number;
515
+ label?: string;
516
+ }
517
+ /** Cashback limits */
518
+ export interface CashbackLimits {
519
+ min: number;
520
+ max: number;
521
+ increments?: number[];
522
+ }
523
+ /** Signature requirement */
524
+ export type SignatureRequirement = 'always' | 'threshold' | 'never';
525
+ /** Receipt mode */
526
+ export type ReceiptMode = 'print' | 'email' | 'sms' | 'none';
527
+ /** Terminal display */
528
+ export interface TerminalDisplay {
529
+ showAmount?: boolean;
530
+ showMerchantName?: boolean;
531
+ customText?: string;
532
+ idleScreen?: IdleScreen;
533
+ }
534
+ /** Idle screen */
535
+ export interface IdleScreen {
536
+ type: 'logo' | 'text' | 'slideshow';
537
+ content?: string;
538
+ interval?: number;
539
+ }
540
+ /** Terminal callbacks */
541
+ export interface TerminalCallbacks {
542
+ onStatusChange?: (status: TerminalStatus) => void;
543
+ onTransactionStart?: (transaction: PaymentTransaction) => void;
544
+ onTransactionComplete?: (transaction: PaymentTransaction) => void;
545
+ onTransactionError?: (error: PaymentError) => void;
546
+ onCardInserted?: () => void;
547
+ onCardRemoved?: () => void;
548
+ onPinEntry?: () => void;
549
+ onSignatureRequired?: (callback: SignatureCallback) => void;
550
+ }
551
+ /** Signature callback */
552
+ export type SignatureCallback = (signature: string | null) => void;
553
+ /** Terminal status */
554
+ export interface TerminalStatus {
555
+ connected: boolean;
556
+ ready: boolean;
557
+ busy: boolean;
558
+ cardPresent: boolean;
559
+ batteryLevel?: number;
560
+ signalStrength?: number;
561
+ lastTransaction?: Date;
562
+ }
563
+ /** Payment transaction */
564
+ export interface PaymentTransaction {
565
+ id: string;
566
+ type: PaymentTransactionType;
567
+ status: PaymentTransactionStatus;
568
+ amount: TransactionAmount;
569
+ card?: CardInfo;
570
+ terminal?: string;
571
+ merchantReference?: string;
572
+ createdAt: Date;
573
+ completedAt?: Date;
574
+ receipt?: TransactionReceipt;
575
+ response?: TransactionResponse;
576
+ }
577
+ /** Payment transaction type */
578
+ export type PaymentTransactionType = 'sale' | 'refund' | 'void' | 'pre_auth' | 'capture' | 'adjustment';
579
+ /** Payment transaction status */
580
+ export type PaymentTransactionStatus = 'pending' | 'processing' | 'approved' | 'declined' | 'cancelled' | 'error' | 'timeout';
581
+ /** Transaction amount */
582
+ export interface TransactionAmount {
583
+ total: number;
584
+ currency: string;
585
+ subtotal?: number;
586
+ tax?: number;
587
+ tip?: number;
588
+ cashback?: number;
589
+ discount?: number;
590
+ }
591
+ /** Card info */
592
+ export interface CardInfo {
593
+ type: CardType;
594
+ brand?: CardBrand;
595
+ lastFour?: string;
596
+ expiryMonth?: number;
597
+ expiryYear?: number;
598
+ entryMode?: CardEntryMode;
599
+ holderName?: string;
600
+ aid?: string;
601
+ applicationLabel?: string;
602
+ }
603
+ /** Card type */
604
+ export type CardType = 'credit' | 'debit' | 'prepaid' | 'unknown';
605
+ /** Card brand */
606
+ export type CardBrand = 'visa' | 'mastercard' | 'amex' | 'discover' | 'diners' | 'jcb' | 'unionpay' | 'maestro' | 'unknown';
607
+ /** Card entry mode */
608
+ export type CardEntryMode = 'contact' | 'contactless' | 'swipe' | 'manual' | 'fallback';
609
+ /** Transaction receipt */
610
+ export interface TransactionReceipt {
611
+ merchantCopy?: string;
612
+ customerCopy?: string;
613
+ signatureLine?: boolean;
614
+ }
615
+ /** Transaction response */
616
+ export interface TransactionResponse {
617
+ authCode?: string;
618
+ referenceNumber?: string;
619
+ responseCode?: string;
620
+ responseMessage?: string;
621
+ emvData?: Record<string, string>;
622
+ }
623
+ /** Payment error */
624
+ export interface PaymentError {
625
+ code: string;
626
+ message: string;
627
+ details?: string;
628
+ recoverable?: boolean;
629
+ }
630
+ /** Measurement device config */
631
+ export interface MeasurementDeviceConfig {
632
+ type: MeasurementDeviceType;
633
+ connection: MeasurementConnection;
634
+ polling?: PollingConfig;
635
+ calibration?: CalibrationConfig;
636
+ units?: UnitConfig;
637
+ }
638
+ /** Measurement device type */
639
+ export type MeasurementDeviceType = 'scale' | 'temperature' | 'humidity' | 'pressure' | 'dimensioner' | 'flow_meter' | 'ph_meter' | 'custom';
640
+ /** Measurement connection */
641
+ export interface MeasurementConnection {
642
+ type: HardwareConnectionType;
643
+ address?: string;
644
+ port?: number;
645
+ baudRate?: number;
646
+ protocol?: MeasurementProtocol;
647
+ }
648
+ /** Measurement protocol */
649
+ export type MeasurementProtocol = 'modbus_rtu' | 'modbus_tcp' | 'serial_ascii' | 'serial_binary' | 'hid' | 'custom';
650
+ /** Polling config */
651
+ export interface PollingConfig {
652
+ enabled?: boolean;
653
+ interval?: number;
654
+ timeout?: number;
655
+ retries?: number;
656
+ }
657
+ /** Calibration config */
658
+ export interface CalibrationConfig {
659
+ enabled?: boolean;
660
+ points?: CalibrationPoint[];
661
+ lastCalibration?: Date;
662
+ nextCalibration?: Date;
663
+ }
664
+ /** Calibration point */
665
+ export interface CalibrationPoint {
666
+ reference: number;
667
+ measured: number;
668
+ unit: string;
669
+ }
670
+ /** Unit config */
671
+ export interface UnitConfig {
672
+ primary: string;
673
+ conversion?: UnitConversion[];
674
+ decimals?: number;
675
+ }
676
+ /** Unit conversion */
677
+ export interface UnitConversion {
678
+ unit: string;
679
+ factor: number;
680
+ offset?: number;
681
+ }
682
+ /** Scale config */
683
+ export interface ScaleConfig extends MeasurementDeviceConfig {
684
+ type: 'scale';
685
+ capacity?: ScaleCapacity;
686
+ tare?: TareConfig;
687
+ stability?: StabilityConfig;
688
+ zero?: ZeroConfig;
689
+ }
690
+ /** Scale capacity */
691
+ export interface ScaleCapacity {
692
+ min: number;
693
+ max: number;
694
+ unit: WeightUnit;
695
+ division: number;
696
+ }
697
+ /** Weight unit */
698
+ export type WeightUnit = 'kg' | 'g' | 'lb' | 'oz' | 't';
699
+ /** Tare config */
700
+ export interface TareConfig {
701
+ autoTare?: boolean;
702
+ maxTare?: number;
703
+ presetTares?: PresetTare[];
704
+ }
705
+ /** Preset tare */
706
+ export interface PresetTare {
707
+ name: string;
708
+ weight: number;
709
+ unit: WeightUnit;
710
+ }
711
+ /** Stability config */
712
+ export interface StabilityConfig {
713
+ required?: boolean;
714
+ timeout?: number;
715
+ tolerance?: number;
716
+ }
717
+ /** Zero config */
718
+ export interface ZeroConfig {
719
+ autoZero?: boolean;
720
+ zeroRange?: number;
721
+ zeroTracking?: boolean;
722
+ }
723
+ /** Scale reading */
724
+ export interface ScaleReading {
725
+ gross: number;
726
+ net: number;
727
+ tare: number;
728
+ unit: WeightUnit;
729
+ stable: boolean;
730
+ overload?: boolean;
731
+ underload?: boolean;
732
+ zero?: boolean;
733
+ timestamp: Date;
734
+ }
735
+ /** Temperature sensor config */
736
+ export interface TemperatureSensorConfig extends MeasurementDeviceConfig {
737
+ type: 'temperature';
738
+ sensorType?: TemperatureSensorType;
739
+ range?: TemperatureRange;
740
+ alerts?: TemperatureAlert[];
741
+ logging?: TemperatureLogging;
742
+ }
743
+ /** Temperature sensor type */
744
+ export type TemperatureSensorType = 'thermocouple' | 'rtd' | 'thermistor' | 'infrared' | 'digital';
745
+ /** Temperature range */
746
+ export interface TemperatureRange {
747
+ min: number;
748
+ max: number;
749
+ unit: TemperatureUnit;
750
+ }
751
+ /** Temperature unit */
752
+ export type TemperatureUnit = 'C' | 'F' | 'K';
753
+ /** Temperature alert */
754
+ export interface TemperatureAlert {
755
+ id: string;
756
+ name: string;
757
+ type: 'high' | 'low' | 'range';
758
+ threshold?: number;
759
+ minThreshold?: number;
760
+ maxThreshold?: number;
761
+ hysteresis?: number;
762
+ delay?: number;
763
+ actions?: AlertAction[];
764
+ }
765
+ /** Alert action */
766
+ export interface AlertAction {
767
+ type: 'email' | 'sms' | 'webhook' | 'sound' | 'visual';
768
+ target?: string;
769
+ message?: string;
770
+ }
771
+ /** Temperature logging */
772
+ export interface TemperatureLogging {
773
+ enabled?: boolean;
774
+ interval?: number;
775
+ retention?: number;
776
+ format?: 'csv' | 'json';
777
+ }
778
+ /** Temperature reading */
779
+ export interface TemperatureReading {
780
+ value: number;
781
+ unit: TemperatureUnit;
782
+ sensorId?: string;
783
+ ambient?: number;
784
+ humidity?: number;
785
+ timestamp: Date;
786
+ alerts?: string[];
787
+ }
788
+ /** Dimensioner config */
789
+ export interface DimensionerConfig extends MeasurementDeviceConfig {
790
+ type: 'dimensioner';
791
+ measurementMode?: DimensionMeasurementMode;
792
+ units?: DimensionUnits;
793
+ integration?: DimensionerIntegration;
794
+ }
795
+ /** Dimension measurement mode */
796
+ export type DimensionMeasurementMode = 'static' | 'dynamic' | 'certified';
797
+ /** Dimension units */
798
+ export interface DimensionUnits {
799
+ /** Primary unit (required by UnitConfig) */
800
+ primary: string;
801
+ length: LengthUnit;
802
+ volume?: VolumeUnit;
803
+ weight?: WeightUnit;
804
+ /** Optional conversion factors */
805
+ conversion?: Array<{
806
+ unit: string;
807
+ factor: number;
808
+ offset?: number;
809
+ }>;
810
+ /** Decimal places */
811
+ decimals?: number;
812
+ }
813
+ /** Length unit */
814
+ export type LengthUnit = 'mm' | 'cm' | 'm' | 'in' | 'ft';
815
+ /** Volume unit */
816
+ export type VolumeUnit = 'cm3' | 'm3' | 'in3' | 'ft3' | 'L';
817
+ /** Dimensioner integration */
818
+ export interface DimensionerIntegration {
819
+ scale?: boolean;
820
+ scanner?: boolean;
821
+ camera?: boolean;
822
+ }
823
+ /** Dimension reading */
824
+ export interface DimensionReading {
825
+ length: number;
826
+ width: number;
827
+ height: number;
828
+ unit: LengthUnit;
829
+ volume?: number;
830
+ volumeUnit?: VolumeUnit;
831
+ weight?: number;
832
+ weightUnit?: WeightUnit;
833
+ barcode?: string;
834
+ image?: string;
835
+ certified?: boolean;
836
+ timestamp: Date;
837
+ }
838
+ /** Serial device config */
839
+ export interface SerialDeviceConfig {
840
+ port: string;
841
+ baudRate: SerialBaudRate;
842
+ dataBits?: SerialDataBits;
843
+ stopBits?: SerialStopBits;
844
+ parity?: SerialParity;
845
+ flowControl?: SerialFlowControl;
846
+ encoding?: string;
847
+ delimiter?: string | number[];
848
+ timeout?: number;
849
+ }
850
+ /** Serial baud rate */
851
+ export type SerialBaudRate = 300 | 1200 | 2400 | 4800 | 9600 | 19200 | 38400 | 57600 | 115200 | 230400 | 460800 | 921600;
852
+ /** Serial data bits */
853
+ export type SerialDataBits = 5 | 6 | 7 | 8;
854
+ /** Serial stop bits */
855
+ export type SerialStopBits = 1 | 1.5 | 2;
856
+ /** Serial parity */
857
+ export type SerialParity = 'none' | 'even' | 'odd' | 'mark' | 'space';
858
+ /** Serial flow control */
859
+ export type SerialFlowControl = 'none' | 'hardware' | 'software';
860
+ /** Serial command */
861
+ export interface SerialCommand {
862
+ command: string | number[];
863
+ expectedResponse?: string | RegExp;
864
+ timeout?: number;
865
+ retries?: number;
866
+ }
867
+ /** Serial response */
868
+ export interface SerialResponse {
869
+ data: string | Uint8Array;
870
+ timestamp: Date;
871
+ duration: number;
872
+ }
873
+ /** BLE config */
874
+ export interface BLEConfig {
875
+ services?: BLEServiceFilter[];
876
+ scanDuration?: number;
877
+ autoReconnect?: boolean;
878
+ reconnectInterval?: number;
879
+ }
880
+ /** BLE service filter */
881
+ export interface BLEServiceFilter {
882
+ uuid: string;
883
+ name?: string;
884
+ }
885
+ /** BLE device */
886
+ export interface BLEDevice {
887
+ id: string;
888
+ name?: string;
889
+ rssi?: number;
890
+ services: BLEService[];
891
+ connected: boolean;
892
+ bonded?: boolean;
893
+ }
894
+ /** BLE service */
895
+ export interface BLEService {
896
+ uuid: string;
897
+ primary: boolean;
898
+ characteristics: BLECharacteristic[];
899
+ }
900
+ /** BLE characteristic */
901
+ export interface BLECharacteristic {
902
+ uuid: string;
903
+ properties: BLEProperties;
904
+ descriptors?: BLEDescriptor[];
905
+ }
906
+ /** BLE properties */
907
+ export interface BLEProperties {
908
+ read?: boolean;
909
+ write?: boolean;
910
+ writeWithoutResponse?: boolean;
911
+ notify?: boolean;
912
+ indicate?: boolean;
913
+ }
914
+ /** BLE descriptor */
915
+ export interface BLEDescriptor {
916
+ uuid: string;
917
+ value?: Uint8Array;
918
+ }
919
+ /** Modbus config */
920
+ export interface ModbusConfig {
921
+ mode: ModbusMode;
922
+ connection: ModbusConnection;
923
+ device: ModbusDevice;
924
+ registers?: ModbusRegisterMap[];
925
+ }
926
+ /** Modbus mode */
927
+ export type ModbusMode = 'rtu' | 'tcp' | 'ascii';
928
+ /** Modbus connection */
929
+ export interface ModbusConnection {
930
+ port?: string;
931
+ baudRate?: number;
932
+ parity?: SerialParity;
933
+ host?: string;
934
+ tcpPort?: number;
935
+ }
936
+ /** Modbus device */
937
+ export interface ModbusDevice {
938
+ unitId: number;
939
+ timeout?: number;
940
+ retries?: number;
941
+ retryDelay?: number;
942
+ }
943
+ /** Modbus register map */
944
+ export interface ModbusRegisterMap {
945
+ name: string;
946
+ address: number;
947
+ type: ModbusRegisterType;
948
+ dataType: ModbusDataType;
949
+ count?: number;
950
+ scale?: number;
951
+ offset?: number;
952
+ unit?: string;
953
+ description?: string;
954
+ }
955
+ /** Modbus register type */
956
+ export type ModbusRegisterType = 'coil' | 'discrete_input' | 'holding_register' | 'input_register';
957
+ /** Modbus data type */
958
+ export type ModbusDataType = 'bool' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'float32' | 'float64' | 'string';
959
+ /** Modbus reading */
960
+ export interface ModbusReading {
961
+ register: string;
962
+ value: number | boolean | string;
963
+ raw?: number[];
964
+ timestamp: Date;
965
+ }
966
+ //# sourceMappingURL=hardware-integration.d.ts.map