@nice2dev/ui-platform 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.
@@ -0,0 +1,2484 @@
1
+ import { CSSProperties } from 'react';
2
+ import { default as default_2 } from 'react';
3
+ import { ReactNode } from 'react';
4
+
5
+ declare interface AutoStartConfig {
6
+ /** Show splash screen */
7
+ showSplash?: boolean;
8
+ /** Splash duration (ms, minimum display time) */
9
+ splashDuration?: number;
10
+ /** Auto-hide splash on ready */
11
+ autoHideSplash?: boolean;
12
+ /** Show progress */
13
+ showProgress?: boolean;
14
+ /** Show task names */
15
+ showTaskNames?: boolean;
16
+ /** Global timeout (ms) */
17
+ globalTimeout?: number;
18
+ /** Auto-recovery on failure */
19
+ autoRecovery?: boolean;
20
+ /** Recovery attempts */
21
+ recoveryAttempts?: number;
22
+ /** Recovery delay (ms) */
23
+ recoveryDelay?: number;
24
+ /** Check for updates */
25
+ checkUpdates?: boolean;
26
+ /** Analytics */
27
+ sendAnalytics?: boolean;
28
+ }
29
+
30
+ declare interface AutoStartState {
31
+ /** Current phase */
32
+ phase: StartupPhase;
33
+ /** Is loading */
34
+ isLoading: boolean;
35
+ /** Is ready */
36
+ isReady: boolean;
37
+ /** Has error */
38
+ hasError: boolean;
39
+ /** Error message */
40
+ errorMessage?: string;
41
+ /** Current task name */
42
+ currentTask?: string;
43
+ /** Progress (0-100) */
44
+ progress: number;
45
+ /** Completed tasks */
46
+ completedTasks: number;
47
+ /** Total tasks */
48
+ totalTasks: number;
49
+ /** Task results */
50
+ results: StartupTaskResult[];
51
+ /** Recovery attempt */
52
+ recoveryAttempt: number;
53
+ /** Total duration (ms) */
54
+ totalDuration: number;
55
+ }
56
+
57
+ declare interface BackgroundSyncConfig {
58
+ /** IndexedDB database name for queue */
59
+ dbName?: string;
60
+ /** IndexedDB store name for queue */
61
+ storeName?: string;
62
+ /** Default max retry attempts */
63
+ defaultMaxAttempts?: number;
64
+ /** Retry delay in ms */
65
+ retryDelay?: number;
66
+ /** Exponential backoff factor */
67
+ backoffFactor?: number;
68
+ /** Max retry delay in ms */
69
+ maxRetryDelay?: number;
70
+ /** Auto-sync when coming online */
71
+ autoSyncOnConnect?: boolean;
72
+ /** Periodic sync interval in ms (0 = disabled) */
73
+ periodicSyncInterval?: number;
74
+ }
75
+
76
+ declare interface BackgroundSyncState {
77
+ /** Is online */
78
+ isOnline: boolean;
79
+ /** Is currently syncing */
80
+ isSyncing: boolean;
81
+ /** Pending tasks count */
82
+ pendingCount: number;
83
+ /** Failed tasks count */
84
+ failedCount: number;
85
+ /** Last sync timestamp */
86
+ lastSyncAt?: Date;
87
+ /** Current sync progress (0-100) */
88
+ syncProgress: number;
89
+ /** Error message */
90
+ error?: string;
91
+ }
92
+
93
+ declare type BarcodeFormat = 'aztec' | 'code_128' | 'code_39' | 'code_93' | 'codabar' | 'data_matrix' | 'ean_13' | 'ean_8' | 'itf' | 'pdf417' | 'qr_code' | 'upc_a' | 'upc_e' | 'unknown';
94
+
95
+ declare type BarcodeFormat_2 = 'aztec' | 'code_128' | 'code_39' | 'code_93' | 'codabar' | 'data_matrix' | 'ean_13' | 'ean_8' | 'itf' | 'pdf417' | 'qr_code' | 'upc_a' | 'upc_e' | 'unknown';
96
+
97
+ declare type BarcodeGeneratorFormat = 'code128' | 'code39' | 'code93' | 'ean13' | 'ean8' | 'upc' | 'itf14' | 'msi' | 'pharmacode' | 'codabar';
98
+
99
+ declare interface BarcodeGeneratorOptions {
100
+ /** Barcode format */
101
+ format?: BarcodeGeneratorFormat;
102
+ /** Bar width */
103
+ width?: number;
104
+ /** Bar height */
105
+ height?: number;
106
+ /** Display value below barcode */
107
+ displayValue?: boolean;
108
+ /** Font for text */
109
+ font?: string;
110
+ /** Font size */
111
+ fontSize?: number;
112
+ /** Text alignment */
113
+ textAlign?: 'left' | 'center' | 'right';
114
+ /** Text position */
115
+ textPosition?: 'top' | 'bottom';
116
+ /** Text margin */
117
+ textMargin?: number;
118
+ /** Background color */
119
+ background?: string;
120
+ /** Bar/line color */
121
+ lineColor?: string;
122
+ /** Margin around barcode */
123
+ margin?: number;
124
+ /** Margin top */
125
+ marginTop?: number;
126
+ /** Margin bottom */
127
+ marginBottom?: number;
128
+ /** Margin left */
129
+ marginLeft?: number;
130
+ /** Margin right */
131
+ marginRight?: number;
132
+ /** Flat (no text) */
133
+ flat?: boolean;
134
+ }
135
+
136
+ declare interface BarcodeScannerConfig {
137
+ /** Formats to detect */
138
+ formats?: BarcodeFormat[];
139
+ /** Enable continuous scanning */
140
+ continuous?: boolean;
141
+ /** Scan interval (ms) for continuous mode */
142
+ scanInterval?: number;
143
+ /** Show bounding box overlay */
144
+ showBoundingBox?: boolean;
145
+ /** Enable beep on scan */
146
+ beepOnScan?: boolean;
147
+ /** Enable vibration on scan */
148
+ vibrateOnScan?: boolean;
149
+ /** Auto-focus mode */
150
+ autoFocus?: boolean;
151
+ /** Preferred camera facing mode */
152
+ facingMode?: 'user' | 'environment';
153
+ /** Resolution */
154
+ resolution?: 'sd' | 'hd' | 'fhd';
155
+ }
156
+
157
+ declare interface BarcodeScannerState {
158
+ /** Is scanner active */
159
+ isScanning: boolean;
160
+ /** Is camera ready */
161
+ isCameraReady: boolean;
162
+ /** Last scan result */
163
+ lastResult: BarcodeScanResult | null;
164
+ /** Error message */
165
+ error: string | null;
166
+ /** Is API supported */
167
+ isSupported: boolean;
168
+ /** Has camera permission */
169
+ hasPermission: boolean | null;
170
+ }
171
+
172
+ declare interface BarcodeScanResult {
173
+ /** Raw barcode value */
174
+ rawValue: string;
175
+ /** Detected format */
176
+ format: BarcodeFormat;
177
+ /** Bounding box coordinates */
178
+ boundingBox?: {
179
+ x: number;
180
+ y: number;
181
+ width: number;
182
+ height: number;
183
+ };
184
+ /** Corner points */
185
+ cornerPoints?: Array<{
186
+ x: number;
187
+ y: number;
188
+ }>;
189
+ /** Scan timestamp */
190
+ timestamp: Date;
191
+ /** Confidence (if available) */
192
+ confidence?: number;
193
+ }
194
+
195
+ declare type BarcodeSymbology = 'code128' | 'code128a' | 'code128b' | 'code128c' | 'code39' | 'code93' | 'codabar' | 'ean13' | 'ean8' | 'ean5' | 'ean2' | 'upc_a' | 'upc_e' | 'itf' | 'itf14' | 'msi' | 'pharmacode' | 'plessey' | 'telepen' | 'qr_code' | 'data_matrix' | 'aztec' | 'pdf417' | 'maxicode' | 'gs1_128' | 'gs1_databar';
196
+
197
+ declare interface BatchScannerOptions {
198
+ /** Allowed formats */
199
+ formats?: BarcodeFormat_2[];
200
+ /** Auto-increment quantity on duplicate */
201
+ autoIncrementDuplicates?: boolean;
202
+ /** Max items in batch */
203
+ maxItems?: number;
204
+ /** Scan interval (ms) */
205
+ scanInterval?: number;
206
+ /** Beep on scan */
207
+ beepOnScan?: boolean;
208
+ /** Vibrate on scan */
209
+ vibrateOnScan?: boolean;
210
+ /** Show bounding box */
211
+ showBoundingBox?: boolean;
212
+ /** Allow manual entry */
213
+ allowManualEntry?: boolean;
214
+ /** Minimum scan confidence (0-1) */
215
+ minConfidence?: number;
216
+ }
217
+
218
+ declare interface CacheConfig {
219
+ /** Cache name */
220
+ cacheName?: string;
221
+ /** Default TTL in ms */
222
+ defaultTTL?: number;
223
+ /** Max cache entries */
224
+ maxEntries?: number;
225
+ /** Default strategy */
226
+ defaultStrategy?: CacheStrategy;
227
+ /** Network timeout before fallback to cache (ms) */
228
+ networkTimeout?: number;
229
+ /** Enable stale data serving */
230
+ serveStale?: boolean;
231
+ /** Stale threshold in ms */
232
+ staleThreshold?: number;
233
+ }
234
+
235
+ declare interface CachedMedia {
236
+ /** Unique ID */
237
+ id: string;
238
+ /** Original URL */
239
+ url: string;
240
+ /** Media type */
241
+ type: MediaType;
242
+ /** File name */
243
+ name: string;
244
+ /** MIME type */
245
+ mimeType: string;
246
+ /** File size in bytes */
247
+ size: number;
248
+ /** Download status */
249
+ status: DownloadStatus;
250
+ /** Download progress (0-100) */
251
+ progress: number;
252
+ /** Downloaded bytes */
253
+ downloadedBytes: number;
254
+ /** Cached timestamp */
255
+ cachedAt?: Date;
256
+ /** Expires at */
257
+ expiresAt?: Date;
258
+ /** Blob URL for playback */
259
+ blobUrl?: string;
260
+ /** Error message if failed */
261
+ error?: string;
262
+ /** Metadata */
263
+ metadata?: {
264
+ title?: string;
265
+ artist?: string;
266
+ album?: string;
267
+ duration?: number;
268
+ dimensions?: {
269
+ width: number;
270
+ height: number;
271
+ };
272
+ thumbnail?: string;
273
+ [key: string]: unknown;
274
+ };
275
+ /** Tags for organization */
276
+ tags?: string[];
277
+ /** Priority (higher = more important) */
278
+ priority?: number;
279
+ }
280
+
281
+ declare interface CacheEntry<T = unknown> {
282
+ /** Cached data */
283
+ data: T;
284
+ /** Cache timestamp */
285
+ timestamp: Date;
286
+ /** Expiration timestamp */
287
+ expiresAt?: Date;
288
+ /** ETag for validation */
289
+ etag?: string;
290
+ /** Cache key */
291
+ key: string;
292
+ /** Is stale */
293
+ isStale: boolean;
294
+ /** Source (cache or network) */
295
+ source: 'cache' | 'network';
296
+ /** Request URL */
297
+ url?: string;
298
+ }
299
+
300
+ declare interface CacheInfo {
301
+ name: string;
302
+ size: number;
303
+ itemCount: number;
304
+ lastUpdated?: Date;
305
+ }
306
+
307
+ declare interface CacheState {
308
+ /** Is fetching */
309
+ isFetching: boolean;
310
+ /** Total cache size (bytes) */
311
+ totalSize: number;
312
+ /** Number of entries */
313
+ entryCount: number;
314
+ /** Cache hits */
315
+ hits: number;
316
+ /** Cache misses */
317
+ misses: number;
318
+ /** Current strategy */
319
+ strategy: CacheStrategy;
320
+ }
321
+
322
+ declare type CacheStrategy = 'cache-first' | 'network-first' | 'cache-only' | 'network-only' | 'stale-while-revalidate';
323
+
324
+ declare interface CalibrationConfig {
325
+ /** Number of calibration points */
326
+ pointCount?: 4 | 5 | 9;
327
+ /** Target size in pixels */
328
+ targetSize?: number;
329
+ /** Required accuracy (pixels) */
330
+ accuracyThreshold?: number;
331
+ /** Timeout per point (ms) */
332
+ pointTimeout?: number;
333
+ /** Show accuracy feedback */
334
+ showAccuracy?: boolean;
335
+ /** Allow retry on failure */
336
+ allowRetry?: boolean;
337
+ /** Save to localStorage */
338
+ persistCalibration?: boolean;
339
+ /** Storage key */
340
+ storageKey?: string;
341
+ /** Custom target component */
342
+ targetComponent?: ReactNode;
343
+ }
344
+
345
+ declare interface CalibrationMatrix {
346
+ /** Scale X */
347
+ scaleX: number;
348
+ /** Scale Y */
349
+ scaleY: number;
350
+ /** Offset X */
351
+ offsetX: number;
352
+ /** Offset Y */
353
+ offsetY: number;
354
+ /** Rotation angle (degrees) */
355
+ rotation: number;
356
+ }
357
+
358
+ declare interface CalibrationPoint {
359
+ /** Target X position (percentage 0-100) */
360
+ targetX: number;
361
+ /** Target Y position (percentage 0-100) */
362
+ targetY: number;
363
+ /** Actual touch X (if calibrated) */
364
+ actualX?: number;
365
+ /** Actual touch Y (if calibrated) */
366
+ actualY?: number;
367
+ /** Is calibrated */
368
+ calibrated: boolean;
369
+ }
370
+
371
+ declare interface CalibrationState {
372
+ /** Is calibration active */
373
+ isActive: boolean;
374
+ /** Current point index */
375
+ currentPointIndex: number;
376
+ /** Total points */
377
+ totalPoints: number;
378
+ /** Calibration points */
379
+ points: CalibrationPoint[];
380
+ /** Is completed */
381
+ isCompleted: boolean;
382
+ /** Is successful */
383
+ isSuccessful: boolean;
384
+ /** Calculated matrix */
385
+ matrix: CalibrationMatrix | null;
386
+ /** Average error (pixels) */
387
+ averageError: number;
388
+ }
389
+
390
+ declare interface ColorCycleConfig {
391
+ /** Colors to cycle through */
392
+ colors: string[];
393
+ /** Cycle interval (ms) */
394
+ interval: number;
395
+ /** Transition duration (ms) */
396
+ transitionDuration: number;
397
+ }
398
+
399
+ declare type CommandType = 'restart' | 'shutdown' | 'update' | 'config' | 'screenshot' | 'logs' | 'custom';
400
+
401
+ declare interface Conflict<T = unknown> {
402
+ /** Unique conflict ID */
403
+ id: string;
404
+ /** Entity type (e.g., 'user', 'document') */
405
+ entityType: string;
406
+ /** Entity ID */
407
+ entityId: string;
408
+ /** Client version */
409
+ clientVersion: ConflictVersion<T>;
410
+ /** Server version */
411
+ serverVersion: ConflictVersion<T>;
412
+ /** Base version (common ancestor) */
413
+ baseVersion?: ConflictVersion<T>;
414
+ /** Conflict status */
415
+ status: ConflictStatus;
416
+ /** Resolved version (after resolution) */
417
+ resolvedVersion?: ConflictVersion<T>;
418
+ /** Resolution strategy used */
419
+ resolvedWith?: ConflictResolutionStrategy;
420
+ /** Created timestamp */
421
+ createdAt: Date;
422
+ /** Resolved timestamp */
423
+ resolvedAt?: Date;
424
+ /** Error message if failed */
425
+ error?: string;
426
+ /** Conflicting fields (for partial conflicts) */
427
+ conflictingFields?: string[];
428
+ /** Custom data */
429
+ customData?: Record<string, unknown>;
430
+ }
431
+
432
+ declare interface ConflictHandlers<T = unknown> {
433
+ /** Auto-merge function */
434
+ merge?: MergeFunction<T>;
435
+ /** Compare values */
436
+ compare?: (a: T, b: T) => boolean;
437
+ /** Get hash for value */
438
+ hash?: (value: T) => string;
439
+ /** Get conflicting fields */
440
+ getConflictingFields?: (client: T, server: T) => string[];
441
+ }
442
+
443
+ declare interface ConflictResolutionConfig {
444
+ /** Default resolution strategy */
445
+ defaultStrategy?: ConflictResolutionStrategy;
446
+ /** Auto-resolve when possible */
447
+ autoResolve?: boolean;
448
+ /** Max pending conflicts before notification */
449
+ maxPendingConflicts?: number;
450
+ /** Persist conflicts to storage */
451
+ persistConflicts?: boolean;
452
+ /** Storage key for persistence */
453
+ storageKey?: string;
454
+ }
455
+
456
+ declare interface ConflictResolutionState {
457
+ /** Pending conflicts */
458
+ conflicts: Conflict[];
459
+ /** Is resolving */
460
+ isResolving: boolean;
461
+ /** Count by status */
462
+ counts: {
463
+ pending: number;
464
+ resolving: number;
465
+ resolved: number;
466
+ failed: number;
467
+ };
468
+ }
469
+
470
+ declare type ConflictResolutionStrategy = 'client-wins' | 'server-wins' | 'latest-wins' | 'merge' | 'manual';
471
+
472
+ declare type ConflictStatus = 'pending' | 'resolving' | 'resolved' | 'failed';
473
+
474
+ declare interface ConflictVersion<T = unknown> {
475
+ /** Version data */
476
+ data: T;
477
+ /** Version timestamp */
478
+ timestamp: Date;
479
+ /** Version source */
480
+ source: 'client' | 'server';
481
+ /** Version ID */
482
+ versionId?: string;
483
+ /** Hash for comparison */
484
+ hash?: string;
485
+ /** Metadata */
486
+ metadata?: Record<string, unknown>;
487
+ }
488
+
489
+ declare interface ConnectionInfo {
490
+ /** Is online */
491
+ isOnline: boolean;
492
+ /** Connection type (if available) */
493
+ type?: ConnectionType;
494
+ /** Effective connection type */
495
+ effectiveType?: EffectiveConnectionType;
496
+ /** Downlink speed (Mbps) */
497
+ downlink?: number;
498
+ /** Round-trip time (ms) */
499
+ rtt?: number;
500
+ /** Save-data preference */
501
+ saveData?: boolean;
502
+ /** Connection quality (0-100) */
503
+ quality: number;
504
+ /** Last online timestamp */
505
+ lastOnlineAt?: Date;
506
+ /** Offline duration in ms */
507
+ offlineDuration?: number;
508
+ }
509
+
510
+ declare type ConnectionStatus = 'disconnected' | 'connecting' | 'connected' | 'error';
511
+
512
+ declare type ConnectionType = 'bluetooth' | 'cellular' | 'ethernet' | 'wifi' | 'wimax' | 'other' | 'none' | 'unknown';
513
+
514
+ declare interface DeviceInfo {
515
+ /** Device ID */
516
+ deviceId: string;
517
+ /** Device name */
518
+ name: string;
519
+ /** Device type */
520
+ type: string;
521
+ /** Location */
522
+ location?: string;
523
+ /** OS info */
524
+ os?: string;
525
+ /** Browser info */
526
+ browser?: string;
527
+ /** Screen resolution */
528
+ resolution?: string;
529
+ /** IP address */
530
+ ip?: string;
531
+ /** Last seen */
532
+ lastSeen?: Date;
533
+ /** Uptime (seconds) */
534
+ uptime?: number;
535
+ /** Custom metadata */
536
+ metadata?: Record<string, unknown>;
537
+ }
538
+
539
+ declare interface DimmingConfig {
540
+ /** Dim level (0-1) */
541
+ level: number;
542
+ /** Fade duration (ms) */
543
+ fadeDuration: number;
544
+ }
545
+
546
+ declare interface DownloadOptions {
547
+ /** Media type (auto-detected if not provided) */
548
+ type?: MediaType;
549
+ /** Custom name */
550
+ name?: string;
551
+ /** Cache duration in ms */
552
+ cacheDuration?: number;
553
+ /** Priority */
554
+ priority?: number;
555
+ /** Tags */
556
+ tags?: string[];
557
+ /** Metadata */
558
+ metadata?: CachedMedia['metadata'];
559
+ /** Headers for request */
560
+ headers?: Record<string, string>;
561
+ }
562
+
563
+ declare type DownloadStatus = 'queued' | 'downloading' | 'paused' | 'completed' | 'failed' | 'cancelled';
564
+
565
+ declare type EffectiveConnectionType = 'slow-2g' | '2g' | '3g' | '4g';
566
+
567
+ declare type ExitMethod = 'keyboard' | 'pin' | 'gesture' | 'admin';
568
+
569
+ declare interface ExternalDisplayConfig {
570
+ /** Auto-detect screens */
571
+ autoDetect?: boolean;
572
+ /** Poll interval for screen changes (ms) */
573
+ pollInterval?: number;
574
+ /** Default window features */
575
+ defaultFeatures?: WindowFeatures;
576
+ /** Allow multi-window */
577
+ allowMultiWindow?: boolean;
578
+ /** Sync content across windows */
579
+ syncContent?: boolean;
580
+ }
581
+
582
+ declare interface ExternalDisplayState {
583
+ /** Available screens */
584
+ screens: ScreenInfo[];
585
+ /** Primary screen */
586
+ primaryScreen: ScreenInfo | null;
587
+ /** External screens */
588
+ externalScreens: ScreenInfo[];
589
+ /** Open windows */
590
+ windows: WindowInfo[];
591
+ /** Is multi-screen API available */
592
+ isApiAvailable: boolean;
593
+ /** Permission state */
594
+ permissionState: 'prompt' | 'granted' | 'denied' | 'unknown';
595
+ }
596
+
597
+ declare interface FetchOptions extends RequestInit {
598
+ /** Override strategy for this request */
599
+ strategy?: CacheStrategy;
600
+ /** Override TTL for this request */
601
+ ttl?: number;
602
+ /** Cache key (defaults to URL) */
603
+ cacheKey?: string;
604
+ /** Force refresh cache */
605
+ forceRefresh?: boolean;
606
+ /** Timeout for network request */
607
+ timeout?: number;
608
+ }
609
+
610
+ declare interface FormDraft<T = Record<string, unknown>> {
611
+ /** Draft ID */
612
+ id: string;
613
+ /** Form ID/name */
614
+ formId: string;
615
+ /** Form data */
616
+ data: T;
617
+ /** Current status */
618
+ status: FormStatus;
619
+ /** Created timestamp */
620
+ createdAt: Date;
621
+ /** Last modified timestamp */
622
+ modifiedAt: Date;
623
+ /** Last synced timestamp */
624
+ syncedAt?: Date;
625
+ /** Submission attempt count */
626
+ attempts: number;
627
+ /** Error message if failed */
628
+ error?: string;
629
+ /** Version for conflict detection */
630
+ version: number;
631
+ /** Was submitted while offline */
632
+ submittedOffline: boolean;
633
+ /** Custom metadata */
634
+ metadata?: Record<string, unknown>;
635
+ }
636
+
637
+ declare type FormStatus = 'draft' | 'pending' | 'syncing' | 'synced' | 'failed';
638
+
639
+ declare interface FormSubmitHandler<T = Record<string, unknown>> {
640
+ (data: T, draft: FormDraft<T>): Promise<void>;
641
+ }
642
+
643
+ declare interface HealthMetrics {
644
+ /** CPU usage (0-100) */
645
+ cpu?: number;
646
+ /** Memory usage (0-100) */
647
+ memory?: number;
648
+ /** Network latency (ms) */
649
+ latency?: number;
650
+ /** Battery level (0-100) */
651
+ battery?: number;
652
+ /** Storage free (bytes) */
653
+ storageFree?: number;
654
+ /** Temperature (celsius) */
655
+ temperature?: number;
656
+ /** Is online */
657
+ isOnline: boolean;
658
+ /** Last updated */
659
+ lastUpdated: Date;
660
+ }
661
+
662
+ declare interface IndexedDBConfig {
663
+ /** Database name */
664
+ dbName: string;
665
+ /** Database version (increment to trigger upgrade) */
666
+ version: number;
667
+ /** Object stores configuration */
668
+ stores: IndexedDBStoreConfig[];
669
+ /** Called during upgrade */
670
+ onUpgrade?: (db: IDBDatabase, oldVersion: number, newVersion: number | null) => void;
671
+ /** Called when blocked by another connection */
672
+ onBlocked?: () => void;
673
+ }
674
+
675
+ declare interface IndexedDBIndex {
676
+ name: string;
677
+ keyPath: string | string[];
678
+ options?: IDBIndexParameters;
679
+ }
680
+
681
+ declare interface IndexedDBState {
682
+ /** Database instance */
683
+ db?: IDBDatabase;
684
+ /** Is database open */
685
+ isOpen: boolean;
686
+ /** Is performing operation */
687
+ isLoading: boolean;
688
+ /** Error message */
689
+ error?: string;
690
+ /** Database version */
691
+ version?: number;
692
+ /** Store names */
693
+ storeNames: string[];
694
+ }
695
+
696
+ declare interface IndexedDBStoreConfig {
697
+ /** Store name */
698
+ name: string;
699
+ /** Key path for objects */
700
+ keyPath?: string;
701
+ /** Auto-increment keys */
702
+ autoIncrement?: boolean;
703
+ /** Indexes to create */
704
+ indexes?: IndexedDBIndex[];
705
+ }
706
+
707
+ declare type IndicatorMode = 'banner' | 'badge' | 'toast' | 'minimal' | 'detailed' | 'icon-only';
708
+
709
+ declare type IndicatorPosition = 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'inline';
710
+
711
+ declare interface KioskConfig {
712
+ /** Enable fullscreen on start */
713
+ autoFullscreen?: boolean;
714
+ /** Lock navigation (disable browser chrome) */
715
+ lockNavigation?: boolean;
716
+ /** Disable context menu */
717
+ disableContextMenu?: boolean;
718
+ /** Disable keyboard shortcuts (F5, Ctrl+R, etc.) */
719
+ disableShortcuts?: boolean;
720
+ /** Disable text selection */
721
+ disableSelection?: boolean;
722
+ /** Disable copy/paste */
723
+ disableCopyPaste?: boolean;
724
+ /** Exit PIN code */
725
+ exitPin?: string;
726
+ /** Exit keyboard shortcut (default: Ctrl+Shift+K) */
727
+ exitShortcut?: string;
728
+ /** Number of taps to trigger admin access */
729
+ adminTapCount?: number;
730
+ /** Admin tap timeout (ms) */
731
+ adminTapTimeout?: number;
732
+ /** Inactivity timeout (ms) for screensaver */
733
+ inactivityTimeout?: number;
734
+ /** Show cursor */
735
+ showCursor?: boolean;
736
+ /** Allow scrolling */
737
+ allowScrolling?: boolean;
738
+ /** Custom CSS class */
739
+ className?: string;
740
+ }
741
+
742
+ declare type KioskMode = 'fullscreen' | 'windowed' | 'locked';
743
+
744
+ declare interface KioskState {
745
+ /** Current mode */
746
+ mode: KioskMode;
747
+ /** Is fullscreen */
748
+ isFullscreen: boolean;
749
+ /** Is locked */
750
+ isLocked: boolean;
751
+ /** Is admin mode */
752
+ isAdminMode: boolean;
753
+ /** Is screensaver active */
754
+ isScreensaverActive: boolean;
755
+ /** Time since last interaction */
756
+ idleTime: number;
757
+ /** Is PIN dialog open */
758
+ isPinDialogOpen: boolean;
759
+ }
760
+
761
+ declare interface LowPowerConfig {
762
+ /** Power modes configuration */
763
+ modes?: Partial<Record<PowerMode, Partial<PowerModeConfig>>>;
764
+ /** Initial mode */
765
+ initialMode?: PowerMode;
766
+ /** Auto-dim timeout (ms) */
767
+ autoDimTimeout?: number;
768
+ /** Auto-sleep timeout (ms) */
769
+ autoSleepTimeout?: number;
770
+ /** Low battery threshold (0-100) */
771
+ lowBatteryThreshold?: number;
772
+ /** Critical battery threshold (0-100) */
773
+ criticalBatteryThreshold?: number;
774
+ /** Enable wake on touch */
775
+ wakeOnTouch?: boolean;
776
+ /** Enable wake on motion */
777
+ wakeOnMotion?: boolean;
778
+ /** Brightness transition duration (ms) */
779
+ transitionDuration?: number;
780
+ /** Schedule-based power modes */
781
+ schedule?: Array<{
782
+ startHour: number;
783
+ endHour: number;
784
+ mode: PowerMode;
785
+ }>;
786
+ }
787
+
788
+ declare interface LowPowerState {
789
+ /** Current power mode */
790
+ currentMode: PowerMode;
791
+ /** Current brightness (0-1) */
792
+ brightness: number;
793
+ /** Is in power saving mode */
794
+ isPowerSaving: boolean;
795
+ /** Is sleeping */
796
+ isSleeping: boolean;
797
+ /** Battery level (0-100, if available) */
798
+ batteryLevel?: number;
799
+ /** Is charging */
800
+ isCharging?: boolean;
801
+ /** Idle time (ms) */
802
+ idleTime: number;
803
+ /** Is display on */
804
+ isDisplayOn: boolean;
805
+ /** Scheduled mode active */
806
+ scheduledModeActive?: PowerMode;
807
+ }
808
+
809
+ declare type MediaType = 'image' | 'video' | 'audio' | 'document' | 'other';
810
+
811
+ declare interface MergeFunction<T = unknown> {
812
+ (client: T, server: T, base?: T): T | Promise<T>;
813
+ }
814
+
815
+ export declare const NiceAutoStart: default_2.ForwardRefExoticComponent<NiceAutoStartProps & default_2.RefAttributes<NiceAutoStartRef>>;
816
+
817
+ declare interface NiceAutoStartProps {
818
+ /** Startup tasks */
819
+ tasks?: StartupTask[];
820
+ /** Configuration */
821
+ config?: AutoStartConfig;
822
+ /** Splash screen component */
823
+ splash?: ReactNode;
824
+ /** Error screen component */
825
+ errorScreen?: ReactNode;
826
+ /** On startup complete */
827
+ onComplete?: (results: StartupTaskResult[]) => void;
828
+ /** On task complete */
829
+ onTaskComplete?: (result: StartupTaskResult) => void;
830
+ /** On error */
831
+ onError?: (error: Error, taskId?: string) => void;
832
+ /** On recovery */
833
+ onRecovery?: (attempt: number) => void;
834
+ /** Children (shown when ready) */
835
+ children?: ReactNode;
836
+ }
837
+
838
+ declare interface NiceAutoStartRef {
839
+ /** Get current state */
840
+ getState: () => AutoStartState;
841
+ /** Restart startup */
842
+ restart: () => Promise<void>;
843
+ /** Skip startup (force ready) */
844
+ skip: () => void;
845
+ /** Add task */
846
+ addTask: (task: StartupTask) => void;
847
+ /** Remove task */
848
+ removeTask: (taskId: string) => void;
849
+ /** Get task result */
850
+ getTaskResult: (taskId: string) => StartupTaskResult | undefined;
851
+ /** Hide splash */
852
+ hideSplash: () => void;
853
+ /** Trigger recovery */
854
+ recover: () => Promise<void>;
855
+ }
856
+
857
+ export declare const NiceBackgroundSync: default_2.ForwardRefExoticComponent<NiceBackgroundSyncProps & default_2.RefAttributes<NiceBackgroundSyncRef>>;
858
+
859
+ declare interface NiceBackgroundSyncProps {
860
+ /** Configuration */
861
+ config?: BackgroundSyncConfig;
862
+ /** Sync handlers by tag */
863
+ handlers: Record<string, SyncHandler>;
864
+ /** Callback when sync starts */
865
+ onSyncStart?: () => void;
866
+ /** Callback when sync completes */
867
+ onSyncComplete?: (results: {
868
+ success: number;
869
+ failed: number;
870
+ }) => void;
871
+ /** Callback when task succeeds */
872
+ onTaskSuccess?: (task: SyncTask) => void;
873
+ /** Callback when task fails */
874
+ onTaskFailed?: (task: SyncTask, error: Error) => void;
875
+ /** Callback on online status change */
876
+ onOnlineChange?: (isOnline: boolean) => void;
877
+ /** Children */
878
+ children?: ReactNode;
879
+ }
880
+
881
+ declare interface NiceBackgroundSyncRef {
882
+ /** Get current state */
883
+ getState: () => BackgroundSyncState;
884
+ /** Add task to sync queue */
885
+ addTask: <T = unknown>(tag: string, data: T, options?: Partial<Pick<SyncTask, 'priority' | 'maxAttempts'>>) => Promise<string>;
886
+ /** Remove task from queue */
887
+ removeTask: (taskId: string) => Promise<boolean>;
888
+ /** Get all tasks */
889
+ getTasks: (tag?: string) => Promise<SyncTask[]>;
890
+ /** Get pending tasks */
891
+ getPendingTasks: (tag?: string) => Promise<SyncTask[]>;
892
+ /** Get failed tasks */
893
+ getFailedTasks: (tag?: string) => Promise<SyncTask[]>;
894
+ /** Retry failed task */
895
+ retryTask: (taskId: string) => Promise<void>;
896
+ /** Retry all failed tasks */
897
+ retryAllFailed: (tag?: string) => Promise<void>;
898
+ /** Clear all tasks */
899
+ clearTasks: (tag?: string) => Promise<void>;
900
+ /** Clear failed tasks */
901
+ clearFailed: (tag?: string) => Promise<void>;
902
+ /** Trigger sync now */
903
+ syncNow: (tag?: string) => Promise<{
904
+ success: number;
905
+ failed: number;
906
+ }>;
907
+ /** Cancel ongoing sync */
908
+ cancelSync: () => void;
909
+ /** Register Background Sync API */
910
+ registerBackgroundSync: (tag: string) => Promise<boolean>;
911
+ }
912
+
913
+ declare interface NiceBarcodeGeneratorProps {
914
+ /** Value to encode */
915
+ value: string;
916
+ /** Generator options */
917
+ options?: BarcodeGeneratorOptions;
918
+ /** On generation complete */
919
+ onGenerate?: (dataUrl: string) => void;
920
+ /** On error */
921
+ onError?: (error: Error) => void;
922
+ /** Show border */
923
+ showBorder?: boolean;
924
+ /** Additional class name */
925
+ className?: string;
926
+ }
927
+
928
+ declare interface NiceBarcodeGeneratorRef {
929
+ /** Get data URL */
930
+ toDataURL: (type?: string, quality?: number) => string | null;
931
+ /** Get SVG string */
932
+ toSVG: () => string | null;
933
+ /** Get canvas element */
934
+ getCanvas: () => HTMLCanvasElement | null;
935
+ /** Download barcode */
936
+ download: (filename?: string, type?: 'png' | 'svg') => void;
937
+ /** Regenerate barcode */
938
+ regenerate: () => void;
939
+ }
940
+
941
+ export declare const NiceBarcodeScanner: default_2.ForwardRefExoticComponent<NiceBarcodeScannerProps & default_2.RefAttributes<NiceBarcodeScannerRef>>;
942
+
943
+ declare interface NiceBarcodeScannerProps {
944
+ /** Configuration */
945
+ config?: BarcodeScannerConfig;
946
+ /** On successful scan */
947
+ onScan?: (result: BarcodeScanResult) => void;
948
+ /** On multiple scans (batch mode) */
949
+ onBatchScan?: (results: BarcodeScanResult[]) => void;
950
+ /** On error */
951
+ onError?: (error: Error) => void;
952
+ /** On camera ready */
953
+ onCameraReady?: () => void;
954
+ /** Custom scan frame */
955
+ customScanFrame?: ReactNode;
956
+ /** Show scan frame */
957
+ showScanFrame?: boolean;
958
+ /** Start scanning on mount */
959
+ autoStart?: boolean;
960
+ /** Children (overlay content) */
961
+ children?: ReactNode;
962
+ /** Additional class name */
963
+ className?: string;
964
+ }
965
+
966
+ declare interface NiceBarcodeScannerRef {
967
+ /** Get current state */
968
+ getState: () => BarcodeScannerState;
969
+ /** Start scanning */
970
+ start: () => Promise<void>;
971
+ /** Stop scanning */
972
+ stop: () => void;
973
+ /** Toggle scanning */
974
+ toggle: () => Promise<void>;
975
+ /** Take snapshot */
976
+ takeSnapshot: () => string | null;
977
+ /** Switch camera */
978
+ switchCamera: () => Promise<void>;
979
+ /** Request permission */
980
+ requestPermission: () => Promise<boolean>;
981
+ }
982
+
983
+ export declare const NiceBatchScanner: default_2.ForwardRefExoticComponent<NiceBatchScannerProps & default_2.RefAttributes<NiceBatchScannerRef>>;
984
+
985
+ declare interface NiceBatchScannerProps {
986
+ /** Scanner options */
987
+ options?: BatchScannerOptions;
988
+ /** Initial items */
989
+ initialItems?: ScannedItem[];
990
+ /** On item scanned */
991
+ onScan?: (item: ScannedItem) => void;
992
+ /** On item removed */
993
+ onRemove?: (item: ScannedItem) => void;
994
+ /** On batch complete */
995
+ onBatchComplete?: (items: ScannedItem[]) => void;
996
+ /** On quantity change */
997
+ onQuantityChange?: (item: ScannedItem, newQuantity: number) => void;
998
+ /** On error */
999
+ onError?: (error: Error) => void;
1000
+ /** Validate scan */
1001
+ validateScan?: (value: string, format: BarcodeFormat_2) => boolean | Promise<boolean>;
1002
+ /** Transform value */
1003
+ transformValue?: (value: string, format: BarcodeFormat_2) => string;
1004
+ /** Class name */
1005
+ className?: string;
1006
+ /** Children */
1007
+ children?: default_2.ReactNode;
1008
+ }
1009
+
1010
+ declare interface NiceBatchScannerRef {
1011
+ /** Start scanning */
1012
+ startScanning: () => Promise<void>;
1013
+ /** Stop scanning */
1014
+ stopScanning: () => void;
1015
+ /** Get all items */
1016
+ getItems: () => ScannedItem[];
1017
+ /** Add item manually */
1018
+ addItem: (value: string, format?: BarcodeFormat_2) => void;
1019
+ /** Remove item */
1020
+ removeItem: (id: string) => void;
1021
+ /** Update quantity */
1022
+ updateQuantity: (id: string, quantity: number) => void;
1023
+ /** Clear all items */
1024
+ clearAll: () => void;
1025
+ /** Export as CSV */
1026
+ exportCSV: () => string;
1027
+ /** Export as JSON */
1028
+ exportJSON: () => string;
1029
+ /** Is scanning */
1030
+ isScanning: () => boolean;
1031
+ }
1032
+
1033
+ export declare const NiceCacheStrategies: default_2.ForwardRefExoticComponent<NiceCacheStrategiesProps & default_2.RefAttributes<NiceCacheStrategiesRef>>;
1034
+
1035
+ declare interface NiceCacheStrategiesProps {
1036
+ /** Configuration */
1037
+ config?: CacheConfig;
1038
+ /** Route-specific strategies */
1039
+ routeStrategies?: Record<string, CacheStrategy>;
1040
+ /** URLs to precache */
1041
+ precacheUrls?: string[];
1042
+ /** Callback when data fetched */
1043
+ onFetch?: <T>(entry: CacheEntry<T>) => void;
1044
+ /** Callback on cache hit */
1045
+ onCacheHit?: <T>(entry: CacheEntry<T>) => void;
1046
+ /** Callback on cache miss */
1047
+ onCacheMiss?: (url: string) => void;
1048
+ /** Callback on network error */
1049
+ onNetworkError?: (error: Error, url: string) => void;
1050
+ /** Children */
1051
+ children?: ReactNode;
1052
+ }
1053
+
1054
+ declare interface NiceCacheStrategiesRef {
1055
+ /** Get current state */
1056
+ getState: () => CacheState;
1057
+ /** Fetch with caching */
1058
+ fetch: <T = unknown>(url: string, options?: FetchOptions) => Promise<CacheEntry<T>>;
1059
+ /** Fetch JSON with caching */
1060
+ fetchJSON: <T = unknown>(url: string, options?: FetchOptions) => Promise<T>;
1061
+ /** Get from cache only */
1062
+ getFromCache: <T = unknown>(key: string) => Promise<CacheEntry<T> | undefined>;
1063
+ /** Add to cache manually */
1064
+ addToCache: <T = unknown>(key: string, data: T, ttl?: number) => Promise<void>;
1065
+ /** Remove from cache */
1066
+ removeFromCache: (key: string) => Promise<boolean>;
1067
+ /** Clear entire cache */
1068
+ clearCache: () => Promise<void>;
1069
+ /** Get all cache keys */
1070
+ getCacheKeys: () => Promise<string[]>;
1071
+ /** Get cache stats */
1072
+ getCacheStats: () => Promise<{
1073
+ size: number;
1074
+ entryCount: number;
1075
+ oldestEntry?: Date;
1076
+ newestEntry?: Date;
1077
+ }>;
1078
+ /** Prefetch URLs */
1079
+ prefetch: (urls: string[], options?: FetchOptions) => Promise<void>;
1080
+ /** Check if cached */
1081
+ isCached: (key: string) => Promise<boolean>;
1082
+ /** Invalidate by pattern */
1083
+ invalidateByPattern: (pattern: RegExp) => Promise<number>;
1084
+ /** Set default strategy */
1085
+ setStrategy: (strategy: CacheStrategy) => void;
1086
+ /** Get strategy for URL */
1087
+ getStrategyForUrl: (url: string) => CacheStrategy;
1088
+ }
1089
+
1090
+ export declare const NiceConflictResolution: default_2.ForwardRefExoticComponent<NiceConflictResolutionProps & default_2.RefAttributes<NiceConflictResolutionRef>>;
1091
+
1092
+ declare interface NiceConflictResolutionProps {
1093
+ /** Configuration */
1094
+ config?: ConflictResolutionConfig;
1095
+ /** Handlers by entity type */
1096
+ handlers?: Record<string, ConflictHandlers>;
1097
+ /** Show conflict UI */
1098
+ showConflictUI?: boolean;
1099
+ /** Position for conflict UI */
1100
+ uiPosition?: 'modal' | 'drawer' | 'inline' | 'toast';
1101
+ /** Auto-open UI on new conflict */
1102
+ autoOpenUI?: boolean;
1103
+ /** Callback when conflict detected */
1104
+ onConflictDetected?: (conflict: Conflict) => void;
1105
+ /** Callback when conflict resolved */
1106
+ onConflictResolved?: (conflict: Conflict) => void;
1107
+ /** Callback when resolution fails */
1108
+ onResolutionFailed?: (conflict: Conflict, error: Error) => void;
1109
+ /** Custom conflict list renderer */
1110
+ renderConflictList?: (props: {
1111
+ conflicts: Conflict[];
1112
+ onResolve: (id: string, strategy: ConflictResolutionStrategy, mergedData?: unknown) => void;
1113
+ onDismiss: (id: string) => void;
1114
+ }) => ReactNode;
1115
+ /** Custom conflict item renderer */
1116
+ renderConflictItem?: (props: {
1117
+ conflict: Conflict;
1118
+ onResolve: (strategy: ConflictResolutionStrategy, mergedData?: unknown) => void;
1119
+ onDismiss: () => void;
1120
+ }) => ReactNode;
1121
+ /** Children */
1122
+ children?: ReactNode;
1123
+ }
1124
+
1125
+ declare interface NiceConflictResolutionRef {
1126
+ /** Get current state */
1127
+ getState: () => ConflictResolutionState;
1128
+ /** Detect conflict */
1129
+ detectConflict: <T = unknown>(entityType: string, entityId: string, clientVersion: ConflictVersion<T>, serverVersion: ConflictVersion<T>, baseVersion?: ConflictVersion<T>) => Conflict<T> | null;
1130
+ /** Add conflict */
1131
+ addConflict: <T = unknown>(conflict: Conflict<T>) => void;
1132
+ /** Resolve conflict with strategy */
1133
+ resolveConflict: (conflictId: string, strategy: ConflictResolutionStrategy, mergedData?: unknown) => Promise<void>;
1134
+ /** Resolve all conflicts with strategy */
1135
+ resolveAll: (strategy: ConflictResolutionStrategy) => Promise<void>;
1136
+ /** Get conflict by ID */
1137
+ getConflict: (conflictId: string) => Conflict | undefined;
1138
+ /** Get conflicts by entity */
1139
+ getConflictsByEntity: (entityType: string, entityId?: string) => Conflict[];
1140
+ /** Get pending conflicts */
1141
+ getPendingConflicts: () => Conflict[];
1142
+ /** Dismiss conflict (remove without resolving) */
1143
+ dismissConflict: (conflictId: string) => void;
1144
+ /** Clear resolved conflicts */
1145
+ clearResolved: () => void;
1146
+ /** Clear all conflicts */
1147
+ clearAll: () => void;
1148
+ /** Open conflict UI */
1149
+ openUI: () => void;
1150
+ /** Close conflict UI */
1151
+ closeUI: () => void;
1152
+ }
1153
+
1154
+ export declare const NiceExternalDisplay: default_2.ForwardRefExoticComponent<NiceExternalDisplayProps & default_2.RefAttributes<NiceExternalDisplayRef>>;
1155
+
1156
+ declare interface NiceExternalDisplayProps {
1157
+ /** Configuration */
1158
+ config?: ExternalDisplayConfig;
1159
+ /** On screens change */
1160
+ onScreensChange?: (screens: ScreenInfo[]) => void;
1161
+ /** On window open */
1162
+ onWindowOpen?: (info: WindowInfo) => void;
1163
+ /** On window close */
1164
+ onWindowClose?: (info: WindowInfo) => void;
1165
+ /** On permission change */
1166
+ onPermissionChange?: (state: 'prompt' | 'granted' | 'denied' | 'unknown') => void;
1167
+ /** Children */
1168
+ children?: ReactNode;
1169
+ }
1170
+
1171
+ declare interface NiceExternalDisplayRef {
1172
+ /** Get current state */
1173
+ getState: () => ExternalDisplayState;
1174
+ /** Request screen permission */
1175
+ requestPermission: () => Promise<boolean>;
1176
+ /** Get available screens */
1177
+ getScreens: () => Promise<ScreenInfo[]>;
1178
+ /** Open window on screen */
1179
+ openWindow: (screen: ScreenInfo, url?: string, features?: WindowFeatures) => Promise<WindowInfo | null>;
1180
+ /** Close window */
1181
+ closeWindow: (windowId: string) => void;
1182
+ /** Close all windows */
1183
+ closeAllWindows: () => void;
1184
+ /** Move window to screen */
1185
+ moveWindowToScreen: (windowId: string, screen: ScreenInfo) => void;
1186
+ /** Toggle fullscreen */
1187
+ toggleFullscreen: (windowId: string) => Promise<boolean>;
1188
+ /** Send message to window */
1189
+ sendMessage: (windowId: string, message: unknown) => void;
1190
+ /** Broadcast message to all windows */
1191
+ broadcast: (message: unknown) => void;
1192
+ }
1193
+
1194
+ export declare const NiceHardwareBarcodeGenerator: default_2.ForwardRefExoticComponent<NiceBarcodeGeneratorProps & default_2.RefAttributes<NiceBarcodeGeneratorRef>>;
1195
+
1196
+ export declare const NiceHardwareQRGenerator: default_2.ForwardRefExoticComponent<NiceQRGeneratorProps & default_2.RefAttributes<NiceQRGeneratorRef>>;
1197
+
1198
+ export declare const NiceIndexedDB: default_2.ForwardRefExoticComponent<NiceIndexedDBProps & default_2.RefAttributes<NiceIndexedDBRef>>;
1199
+
1200
+ declare interface NiceIndexedDBProps {
1201
+ /** Database configuration */
1202
+ config: IndexedDBConfig;
1203
+ /** Open database on mount */
1204
+ autoOpen?: boolean;
1205
+ /** Callback when database opens */
1206
+ onOpen?: (db: IDBDatabase) => void;
1207
+ /** Callback on error */
1208
+ onError?: (error: Error) => void;
1209
+ /** Callback when database closes */
1210
+ onClose?: () => void;
1211
+ /** Children to render */
1212
+ children?: ReactNode;
1213
+ }
1214
+
1215
+ declare interface NiceIndexedDBRef {
1216
+ /** Get current state */
1217
+ getState: () => IndexedDBState;
1218
+ /** Open database */
1219
+ open: () => Promise<IDBDatabase>;
1220
+ /** Close database */
1221
+ close: () => void;
1222
+ /** Delete database */
1223
+ deleteDatabase: () => Promise<void>;
1224
+ /** Get item by key */
1225
+ get: <T = unknown>(storeName: string, key: IDBValidKey) => Promise<T | undefined>;
1226
+ /** Get all items */
1227
+ getAll: <T = unknown>(storeName: string, options?: QueryOptions) => Promise<T[]>;
1228
+ /** Get all keys */
1229
+ getAllKeys: (storeName: string, options?: QueryOptions) => Promise<IDBValidKey[]>;
1230
+ /** Add item (fails if exists) */
1231
+ add: <T = unknown>(storeName: string, value: T, key?: IDBValidKey) => Promise<IDBValidKey>;
1232
+ /** Put item (upsert) */
1233
+ put: <T = unknown>(storeName: string, value: T, key?: IDBValidKey) => Promise<IDBValidKey>;
1234
+ /** Delete item */
1235
+ delete: (storeName: string, key: IDBValidKey) => Promise<void>;
1236
+ /** Clear all items in store */
1237
+ clear: (storeName: string) => Promise<void>;
1238
+ /** Count items */
1239
+ count: (storeName: string, key?: IDBValidKey | IDBKeyRange) => Promise<number>;
1240
+ /** Query with index */
1241
+ query: <T = unknown>(storeName: string, options: QueryOptions) => Promise<T[]>;
1242
+ /** Execute transaction */
1243
+ transaction: <T>(options: TransactionOptions, callback: (tx: IDBTransaction) => Promise<T>) => Promise<T>;
1244
+ /** Bulk add items */
1245
+ bulkAdd: <T = unknown>(storeName: string, items: T[]) => Promise<IDBValidKey[]>;
1246
+ /** Bulk put items */
1247
+ bulkPut: <T = unknown>(storeName: string, items: T[]) => Promise<IDBValidKey[]>;
1248
+ /** Bulk delete items */
1249
+ bulkDelete: (storeName: string, keys: IDBValidKey[]) => Promise<void>;
1250
+ /** Get database info */
1251
+ getInfo: () => Promise<{
1252
+ name: string;
1253
+ version: number;
1254
+ stores: {
1255
+ name: string;
1256
+ keyPath: string | string[] | null;
1257
+ autoIncrement: boolean;
1258
+ indexNames: string[];
1259
+ }[];
1260
+ }>;
1261
+ }
1262
+
1263
+ export declare const NiceKioskMode: default_2.ForwardRefExoticComponent<NiceKioskModeProps & default_2.RefAttributes<NiceKioskModeRef>>;
1264
+
1265
+ declare interface NiceKioskModeProps {
1266
+ /** Configuration */
1267
+ config?: KioskConfig;
1268
+ /** Children content */
1269
+ children?: ReactNode;
1270
+ /** Screensaver component */
1271
+ screensaver?: ReactNode;
1272
+ /** Admin panel component */
1273
+ adminPanel?: ReactNode;
1274
+ /** On mode change */
1275
+ onModeChange?: (mode: KioskMode) => void;
1276
+ /** On fullscreen change */
1277
+ onFullscreenChange?: (isFullscreen: boolean) => void;
1278
+ /** On admin access */
1279
+ onAdminAccess?: () => void;
1280
+ /** On inactivity */
1281
+ onInactivity?: () => void;
1282
+ /** On activity */
1283
+ onActivity?: () => void;
1284
+ /** On exit request */
1285
+ onExitRequest?: (method: ExitMethod) => boolean | Promise<boolean>;
1286
+ }
1287
+
1288
+ declare interface NiceKioskModeRef {
1289
+ /** Get current state */
1290
+ getState: () => KioskState;
1291
+ /** Enter fullscreen */
1292
+ enterFullscreen: () => Promise<void>;
1293
+ /** Exit fullscreen */
1294
+ exitFullscreen: () => Promise<void>;
1295
+ /** Toggle fullscreen */
1296
+ toggleFullscreen: () => Promise<void>;
1297
+ /** Lock kiosk */
1298
+ lock: () => void;
1299
+ /** Unlock kiosk */
1300
+ unlock: (pin?: string) => boolean;
1301
+ /** Enter admin mode */
1302
+ enterAdminMode: () => void;
1303
+ /** Exit admin mode */
1304
+ exitAdminMode: () => void;
1305
+ /** Reset inactivity timer */
1306
+ resetIdleTimer: () => void;
1307
+ /** Show screensaver */
1308
+ showScreensaver: () => void;
1309
+ /** Hide screensaver */
1310
+ hideScreensaver: () => void;
1311
+ /** Open PIN dialog */
1312
+ openPinDialog: () => void;
1313
+ /** Close PIN dialog */
1314
+ closePinDialog: () => void;
1315
+ }
1316
+
1317
+ export declare const NiceLowPowerMode: default_2.ForwardRefExoticComponent<NiceLowPowerModeProps & default_2.RefAttributes<NiceLowPowerModeRef>>;
1318
+
1319
+ declare interface NiceLowPowerModeProps {
1320
+ /** Configuration */
1321
+ config?: LowPowerConfig;
1322
+ /** On mode change */
1323
+ onModeChange?: (mode: PowerMode, previousMode: PowerMode) => void;
1324
+ /** On brightness change */
1325
+ onBrightnessChange?: (brightness: number) => void;
1326
+ /** On sleep */
1327
+ onSleep?: () => void;
1328
+ /** On wake */
1329
+ onWake?: () => void;
1330
+ /** On low battery */
1331
+ onLowBattery?: (level: number) => void;
1332
+ /** Children */
1333
+ children?: ReactNode;
1334
+ }
1335
+
1336
+ declare interface NiceLowPowerModeRef {
1337
+ /** Get current state */
1338
+ getState: () => LowPowerState;
1339
+ /** Set power mode */
1340
+ setMode: (mode: PowerMode) => void;
1341
+ /** Set brightness */
1342
+ setBrightness: (level: number) => void;
1343
+ /** Go to sleep */
1344
+ sleep: () => void;
1345
+ /** Wake up */
1346
+ wake: () => void;
1347
+ /** Toggle power saving */
1348
+ togglePowerSaving: () => void;
1349
+ /** Reset idle timer */
1350
+ resetIdleTimer: () => void;
1351
+ /** Get battery info */
1352
+ getBatteryInfo: () => Promise<{
1353
+ level?: number;
1354
+ charging?: boolean;
1355
+ }>;
1356
+ }
1357
+
1358
+ export declare const NiceOfflineForms: default_2.ForwardRefExoticComponent<NiceOfflineFormsProps & default_2.RefAttributes<NiceOfflineFormsRef>>;
1359
+
1360
+ declare interface NiceOfflineFormsProps {
1361
+ /** Configuration */
1362
+ config?: OfflineFormsConfig;
1363
+ /** Submit handlers by form ID */
1364
+ submitHandlers?: Record<string, FormSubmitHandler>;
1365
+ /** Callback when draft saved */
1366
+ onDraftSaved?: <T>(draft: FormDraft<T>) => void;
1367
+ /** Callback when form submitted */
1368
+ onFormSubmitted?: <T>(draft: FormDraft<T>) => void;
1369
+ /** Callback when submission fails */
1370
+ onSubmissionFailed?: <T>(draft: FormDraft<T>, error: Error) => void;
1371
+ /** Callback on sync complete */
1372
+ onSyncComplete?: (results: {
1373
+ synced: number;
1374
+ failed: number;
1375
+ }) => void;
1376
+ /** Children */
1377
+ children?: ReactNode;
1378
+ }
1379
+
1380
+ declare interface NiceOfflineFormsRef {
1381
+ /** Get current state */
1382
+ getState: () => OfflineFormsState;
1383
+ /** Save form draft */
1384
+ saveDraft: <T = Record<string, unknown>>(formId: string, data: T, metadata?: Record<string, unknown>) => Promise<string>;
1385
+ /** Get draft by ID */
1386
+ getDraft: <T = Record<string, unknown>>(draftId: string) => Promise<FormDraft<T> | undefined>;
1387
+ /** Get all drafts for form */
1388
+ getDrafts: <T = Record<string, unknown>>(formId: string) => Promise<FormDraft<T>[]>;
1389
+ /** Get all pending drafts */
1390
+ getPendingDrafts: <T = Record<string, unknown>>() => Promise<FormDraft<T>[]>;
1391
+ /** Update draft */
1392
+ updateDraft: <T = Record<string, unknown>>(draftId: string, data: Partial<T>) => Promise<void>;
1393
+ /** Delete draft */
1394
+ deleteDraft: (draftId: string) => Promise<void>;
1395
+ /** Submit draft */
1396
+ submitDraft: (draftId: string) => Promise<void>;
1397
+ /** Submit form directly */
1398
+ submitForm: <T = Record<string, unknown>>(formId: string, data: T) => Promise<void>;
1399
+ /** Sync all pending */
1400
+ syncPending: () => Promise<{
1401
+ synced: number;
1402
+ failed: number;
1403
+ }>;
1404
+ /** Retry failed */
1405
+ retryFailed: () => Promise<void>;
1406
+ /** Clear all drafts for form */
1407
+ clearDrafts: (formId: string) => Promise<void>;
1408
+ /** Register submit handler */
1409
+ registerHandler: <T = Record<string, unknown>>(formId: string, handler: FormSubmitHandler<T>) => void;
1410
+ }
1411
+
1412
+ export declare const NiceOfflineIndicator: default_2.ForwardRefExoticComponent<NiceOfflineIndicatorProps & default_2.RefAttributes<NiceOfflineIndicatorRef>>;
1413
+
1414
+ declare interface NiceOfflineIndicatorProps {
1415
+ /** Display mode */
1416
+ mode?: IndicatorMode;
1417
+ /** Position (for fixed modes) */
1418
+ position?: IndicatorPosition;
1419
+ /** Show when online */
1420
+ showWhenOnline?: boolean;
1421
+ /** Auto-hide online status after ms (0 = never) */
1422
+ autoHideOnlineDelay?: number;
1423
+ /** Show slow connection warning */
1424
+ showSlowConnectionWarning?: boolean;
1425
+ /** Slow connection threshold (Mbps) */
1426
+ slowConnectionThreshold?: number;
1427
+ /** Enable reconnecting attempts indicator */
1428
+ showReconnecting?: boolean;
1429
+ /** Reconnect check interval (ms) */
1430
+ reconnectCheckInterval?: number;
1431
+ /** Custom offline message */
1432
+ offlineMessage?: string;
1433
+ /** Custom online message */
1434
+ onlineMessage?: string;
1435
+ /** Custom slow connection message */
1436
+ slowConnectionMessage?: string;
1437
+ /** Custom reconnecting message */
1438
+ reconnectingMessage?: string;
1439
+ /** Show connection details */
1440
+ showDetails?: boolean;
1441
+ /** Animated transitions */
1442
+ animated?: boolean;
1443
+ /** Pulse animation when offline */
1444
+ pulseWhenOffline?: boolean;
1445
+ /** Custom offline icon */
1446
+ offlineIcon?: ReactNode;
1447
+ /** Custom online icon */
1448
+ onlineIcon?: ReactNode;
1449
+ /** Custom slow icon */
1450
+ slowIcon?: ReactNode;
1451
+ /** Render custom content */
1452
+ renderContent?: (info: ConnectionInfo) => ReactNode;
1453
+ /** Callback on status change */
1454
+ onStatusChange?: (info: ConnectionInfo) => void;
1455
+ /** Callback on reconnect */
1456
+ onReconnect?: () => void;
1457
+ /** Additional CSS class */
1458
+ className?: string;
1459
+ /** Inline styles */
1460
+ style?: CSSProperties;
1461
+ }
1462
+
1463
+ declare interface NiceOfflineIndicatorRef {
1464
+ /** Get current connection info */
1465
+ getConnectionInfo: () => ConnectionInfo;
1466
+ /** Check connection now */
1467
+ checkConnection: () => Promise<boolean>;
1468
+ /** Force show indicator */
1469
+ show: () => void;
1470
+ /** Force hide indicator */
1471
+ hide: () => void;
1472
+ /** Toggle visibility */
1473
+ toggle: () => void;
1474
+ }
1475
+
1476
+ export declare const NiceOfflineMedia: default_2.ForwardRefExoticComponent<NiceOfflineMediaProps & default_2.RefAttributes<NiceOfflineMediaRef>>;
1477
+
1478
+ declare interface NiceOfflineMediaProps {
1479
+ /** Configuration */
1480
+ config?: OfflineMediaConfig;
1481
+ /** Callback when download starts */
1482
+ onDownloadStart?: (media: CachedMedia) => void;
1483
+ /** Callback on progress */
1484
+ onDownloadProgress?: (media: CachedMedia) => void;
1485
+ /** Callback when download completes */
1486
+ onDownloadComplete?: (media: CachedMedia) => void;
1487
+ /** Callback when download fails */
1488
+ onDownloadFailed?: (media: CachedMedia, error: Error) => void;
1489
+ /** Callback when media removed */
1490
+ onMediaRemoved?: (mediaId: string) => void;
1491
+ /** Children */
1492
+ children?: ReactNode;
1493
+ }
1494
+
1495
+ declare interface NiceOfflineMediaRef {
1496
+ /** Get current state */
1497
+ getState: () => OfflineMediaState;
1498
+ /** Download media */
1499
+ download: (url: string, options?: DownloadOptions) => Promise<string>;
1500
+ /** Download multiple */
1501
+ downloadMultiple: (items: Array<{
1502
+ url: string;
1503
+ options?: DownloadOptions;
1504
+ }>) => Promise<string[]>;
1505
+ /** Get cached media */
1506
+ getCachedMedia: (mediaId: string) => Promise<CachedMedia | undefined>;
1507
+ /** Get all cached media */
1508
+ getAllCachedMedia: () => Promise<CachedMedia[]>;
1509
+ /** Get media by type */
1510
+ getMediaByType: (type: MediaType) => Promise<CachedMedia[]>;
1511
+ /** Get media by tag */
1512
+ getMediaByTag: (tag: string) => Promise<CachedMedia[]>;
1513
+ /** Get blob URL for offline playback */
1514
+ getBlobUrl: (mediaId: string) => Promise<string | undefined>;
1515
+ /** Check if cached */
1516
+ isCached: (url: string) => Promise<boolean>;
1517
+ /** Pause download */
1518
+ pauseDownload: (mediaId: string) => void;
1519
+ /** Resume download */
1520
+ resumeDownload: (mediaId: string) => Promise<void>;
1521
+ /** Cancel download */
1522
+ cancelDownload: (mediaId: string) => void;
1523
+ /** Pause all downloads */
1524
+ pauseAll: () => void;
1525
+ /** Resume all downloads */
1526
+ resumeAll: () => Promise<void>;
1527
+ /** Remove cached media */
1528
+ removeMedia: (mediaId: string) => Promise<void>;
1529
+ /** Clear all cache */
1530
+ clearCache: () => Promise<void>;
1531
+ /** Clear expired */
1532
+ clearExpired: () => Promise<number>;
1533
+ /** Get cache stats */
1534
+ getCacheStats: () => Promise<{
1535
+ totalSize: number;
1536
+ itemCount: number;
1537
+ byType: Record<MediaType, {
1538
+ count: number;
1539
+ size: number;
1540
+ }>;
1541
+ }>;
1542
+ /** Preload media (low priority) */
1543
+ preload: (urls: string[]) => Promise<void>;
1544
+ }
1545
+
1546
+ export declare const NiceOrientationLock: default_2.ForwardRefExoticComponent<NiceOrientationLockProps & default_2.RefAttributes<NiceOrientationLockRef>>;
1547
+
1548
+ declare interface NiceOrientationLockProps {
1549
+ /** Configuration */
1550
+ config?: OrientationLockConfig;
1551
+ /** On orientation change */
1552
+ onOrientationChange?: (info: OrientationInfo) => void;
1553
+ /** On lock status change */
1554
+ onLockChange?: (isLocked: boolean, orientation: OrientationType_2 | null) => void;
1555
+ /** On unsupported orientation */
1556
+ onUnsupportedOrientation?: (current: OrientationType_2, supported: OrientationType_2[]) => void;
1557
+ /** Custom rotation prompt */
1558
+ rotationPrompt?: ReactNode;
1559
+ /** Children */
1560
+ children?: ReactNode;
1561
+ /** Additional class name */
1562
+ className?: string;
1563
+ }
1564
+
1565
+ declare interface NiceOrientationLockRef {
1566
+ /** Get current state */
1567
+ getState: () => OrientationState;
1568
+ /** Lock to specific orientation */
1569
+ lock: (orientation: OrientationType_2) => Promise<boolean>;
1570
+ /** Unlock orientation */
1571
+ unlock: () => Promise<boolean>;
1572
+ /** Toggle lock */
1573
+ toggleLock: () => Promise<boolean>;
1574
+ /** Get current orientation info */
1575
+ getOrientationInfo: () => OrientationInfo;
1576
+ /** Check if orientation is supported */
1577
+ isOrientationSupported: (orientation: OrientationType_2) => boolean;
1578
+ }
1579
+
1580
+ declare interface NiceQRGeneratorProps {
1581
+ /** Data to encode */
1582
+ value: string;
1583
+ /** Generator options */
1584
+ options?: QRGeneratorOptions;
1585
+ /** On generation complete */
1586
+ onGenerate?: (dataUrl: string) => void;
1587
+ /** On error */
1588
+ onError?: (error: Error) => void;
1589
+ /** Show border */
1590
+ showBorder?: boolean;
1591
+ /** Class name */
1592
+ className?: string;
1593
+ }
1594
+
1595
+ declare interface NiceQRGeneratorRef {
1596
+ /** Get data URL */
1597
+ toDataURL: (type?: string, quality?: number) => string | null;
1598
+ /** Get SVG string */
1599
+ toSVG: () => string | null;
1600
+ /** Download QR code */
1601
+ download: (filename?: string, type?: 'png' | 'svg') => void;
1602
+ /** Regenerate */
1603
+ regenerate: () => void;
1604
+ }
1605
+
1606
+ export declare const NiceQRScanner: default_2.ForwardRefExoticComponent<NiceQRScannerProps & default_2.RefAttributes<NiceQRScannerRef>>;
1607
+
1608
+ declare interface NiceQRScannerProps {
1609
+ /** Configuration */
1610
+ config?: QRScannerConfig;
1611
+ /** On scan */
1612
+ onScan?: (result: QRScanResult) => void;
1613
+ /** On error */
1614
+ onError?: (error: Error) => void;
1615
+ /** On camera ready */
1616
+ onCameraReady?: () => void;
1617
+ /** Auto start */
1618
+ autoStart?: boolean;
1619
+ /** Show scan frame */
1620
+ showScanFrame?: boolean;
1621
+ /** Custom overlay */
1622
+ children?: ReactNode;
1623
+ /** Class name */
1624
+ className?: string;
1625
+ }
1626
+
1627
+ declare interface NiceQRScannerRef {
1628
+ /** Get state */
1629
+ getState: () => QRScannerState;
1630
+ /** Start */
1631
+ start: () => Promise<void>;
1632
+ /** Stop */
1633
+ stop: () => void;
1634
+ /** Toggle */
1635
+ toggle: () => Promise<void>;
1636
+ /** Switch camera */
1637
+ switchCamera: () => Promise<void>;
1638
+ /** Toggle torch */
1639
+ toggleTorch: () => Promise<void>;
1640
+ /** Take snapshot */
1641
+ takeSnapshot: () => string | null;
1642
+ /** Scan image file */
1643
+ scanImage: (file: File) => Promise<QRScanResult | null>;
1644
+ }
1645
+
1646
+ export declare const NiceRemoteManagement: default_2.ForwardRefExoticComponent<NiceRemoteManagementProps & default_2.RefAttributes<NiceRemoteManagementRef>>;
1647
+
1648
+ declare interface NiceRemoteManagementProps {
1649
+ /** Configuration */
1650
+ config: RemoteManagementConfig;
1651
+ /** On connection change */
1652
+ onConnectionChange?: (status: ConnectionStatus) => void;
1653
+ /** On command received */
1654
+ onCommandReceived?: (command: RemoteCommand) => void;
1655
+ /** On custom command */
1656
+ onCustomCommand?: (command: RemoteCommand) => Promise<unknown>;
1657
+ /** Children */
1658
+ children?: ReactNode;
1659
+ }
1660
+
1661
+ declare interface NiceRemoteManagementRef {
1662
+ /** Get current state */
1663
+ getState: () => RemoteManagementState;
1664
+ /** Connect to server */
1665
+ connect: () => Promise<void>;
1666
+ /** Disconnect */
1667
+ disconnect: () => void;
1668
+ /** Send heartbeat */
1669
+ sendHeartbeat: () => Promise<void>;
1670
+ /** Send health metrics */
1671
+ sendHealthMetrics: (metrics: Partial<HealthMetrics>) => Promise<void>;
1672
+ /** Report command result */
1673
+ reportCommandResult: (commandId: string, result: unknown, error?: string) => Promise<void>;
1674
+ /** Send log */
1675
+ sendLog: (level: string, message: string, data?: unknown) => void;
1676
+ /** Capture screenshot */
1677
+ captureScreenshot: () => Promise<string | undefined>;
1678
+ /** Get device info */
1679
+ getDeviceInfo: () => DeviceInfo;
1680
+ }
1681
+
1682
+ export declare const NiceScreenBurnPrevention: default_2.ForwardRefExoticComponent<NiceScreenBurnPreventionProps & default_2.RefAttributes<NiceScreenBurnPreventionRef>>;
1683
+
1684
+ declare interface NiceScreenBurnPreventionProps {
1685
+ /** Configuration */
1686
+ config?: Partial<ScreenBurnPreventionConfig>;
1687
+ /** Enable/disable */
1688
+ enabled?: boolean;
1689
+ /** On activation */
1690
+ onActivate?: () => void;
1691
+ /** On deactivation */
1692
+ onDeactivate?: () => void;
1693
+ /** On mode change */
1694
+ onModeChange?: (modes: PreventionMode[]) => void;
1695
+ /** Children */
1696
+ children?: ReactNode;
1697
+ }
1698
+
1699
+ declare interface NiceScreenBurnPreventionRef {
1700
+ /** Get current state */
1701
+ getState: () => ScreenBurnPreventionState;
1702
+ /** Activate prevention */
1703
+ activate: () => void;
1704
+ /** Deactivate prevention */
1705
+ deactivate: () => void;
1706
+ /** Toggle prevention */
1707
+ toggle: () => void;
1708
+ /** Reset idle timer */
1709
+ resetIdleTimer: () => void;
1710
+ /** Force shift */
1711
+ forceShift: () => void;
1712
+ /** Show screensaver */
1713
+ showScreensaver: () => void;
1714
+ /** Hide screensaver */
1715
+ hideScreensaver: () => void;
1716
+ /** Set dim level */
1717
+ setDimLevel: (level: number) => void;
1718
+ }
1719
+
1720
+ export declare const NiceServiceWorker: default_2.ForwardRefExoticComponent<NiceServiceWorkerProps & default_2.RefAttributes<NiceServiceWorkerRef>>;
1721
+
1722
+ export declare interface NiceServiceWorkerProps {
1723
+ /** Service worker configuration */
1724
+ config?: ServiceWorkerConfig;
1725
+ /** Show update notification UI */
1726
+ showUpdateNotification?: boolean;
1727
+ /** Show offline indicator */
1728
+ showOfflineIndicator?: boolean;
1729
+ /** Custom update notification component */
1730
+ renderUpdateNotification?: (props: {
1731
+ onUpdate: () => void;
1732
+ onDismiss: () => void;
1733
+ }) => ReactNode;
1734
+ /** Custom offline indicator component */
1735
+ renderOfflineIndicator?: (props: {
1736
+ isOnline: boolean;
1737
+ }) => ReactNode;
1738
+ /** Notification position */
1739
+ notificationPosition?: 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
1740
+ /** Auto-dismiss notification after ms (0 = never) */
1741
+ autoDismissDelay?: number;
1742
+ /** Callback when SW registered */
1743
+ onRegistered?: (registration: ServiceWorkerRegistration) => void;
1744
+ /** Callback when update available */
1745
+ onUpdateAvailable?: () => void;
1746
+ /** Callback when activated */
1747
+ onActivated?: () => void;
1748
+ /** Callback on error */
1749
+ onError?: (error: Error) => void;
1750
+ /** Callback on online status change */
1751
+ onOnlineStatusChange?: (isOnline: boolean) => void;
1752
+ /** Children to render */
1753
+ children?: ReactNode;
1754
+ /** Additional CSS class */
1755
+ className?: string;
1756
+ }
1757
+
1758
+ export declare const NiceServiceWorkerProvider: default_2.ForwardRefExoticComponent<NiceServiceWorkerProviderProps & default_2.RefAttributes<NiceServiceWorkerRef>>;
1759
+
1760
+ export declare interface NiceServiceWorkerProviderProps extends NiceServiceWorkerProps {
1761
+ }
1762
+
1763
+ export declare interface NiceServiceWorkerRef {
1764
+ /** Get current state */
1765
+ getState: () => ServiceWorkerState_2;
1766
+ /** Register service worker */
1767
+ register: () => Promise<ServiceWorkerRegistration | undefined>;
1768
+ /** Unregister service worker */
1769
+ unregister: () => Promise<boolean>;
1770
+ /** Check for updates */
1771
+ checkForUpdates: () => Promise<void>;
1772
+ /** Apply waiting update */
1773
+ applyUpdate: () => void;
1774
+ /** Skip waiting and activate new SW */
1775
+ skipWaiting: () => void;
1776
+ /** Get all caches info */
1777
+ getCachesInfo: () => Promise<CacheInfo[]>;
1778
+ /** Clear specific cache */
1779
+ clearCache: (cacheName: string) => Promise<boolean>;
1780
+ /** Clear all caches */
1781
+ clearAllCaches: () => Promise<void>;
1782
+ /** Add URLs to cache */
1783
+ addToCache: (cacheName: string, urls: string[]) => Promise<void>;
1784
+ /** Remove URL from cache */
1785
+ removeFromCache: (cacheName: string, url: string) => Promise<boolean>;
1786
+ /** Get cached URLs */
1787
+ getCachedUrls: (cacheName: string) => Promise<string[]>;
1788
+ /** Force reload */
1789
+ forceReload: () => void;
1790
+ }
1791
+
1792
+ export declare const NiceSymbologyConfig: default_2.ForwardRefExoticComponent<NiceSymbologyConfigProps & default_2.RefAttributes<NiceSymbologyConfigRef>>;
1793
+
1794
+ declare interface NiceSymbologyConfigProps {
1795
+ /** Selected symbologies */
1796
+ selected?: BarcodeSymbology[];
1797
+ /** On selection change */
1798
+ onChange?: (selected: BarcodeSymbology[]) => void;
1799
+ /** Filter by category */
1800
+ category?: SymbologyCategory | 'all';
1801
+ /** Multi-select mode */
1802
+ multiSelect?: boolean;
1803
+ /** Show details panel */
1804
+ showDetails?: boolean;
1805
+ /** Show validation */
1806
+ showValidation?: boolean;
1807
+ /** Test value for validation */
1808
+ testValue?: string;
1809
+ /** Read-only mode */
1810
+ readOnly?: boolean;
1811
+ /** Class name */
1812
+ className?: string;
1813
+ }
1814
+
1815
+ declare interface NiceSymbologyConfigRef {
1816
+ /** Get selected symbologies */
1817
+ getSelected: () => BarcodeSymbology[];
1818
+ /** Select symbology */
1819
+ select: (id: BarcodeSymbology) => void;
1820
+ /** Deselect symbology */
1821
+ deselect: (id: BarcodeSymbology) => void;
1822
+ /** Select all */
1823
+ selectAll: () => void;
1824
+ /** Clear selection */
1825
+ clearSelection: () => void;
1826
+ /** Validate value against symbology */
1827
+ validate: (value: string, symbology: BarcodeSymbology) => SymbologyValidationResult;
1828
+ /** Get symbology info */
1829
+ getInfo: (symbology: BarcodeSymbology) => SymbologyInfo | undefined;
1830
+ /** Get all symbologies */
1831
+ getAll: () => SymbologyInfo[];
1832
+ }
1833
+
1834
+ export declare const NiceTouchCalibration: default_2.ForwardRefExoticComponent<NiceTouchCalibrationProps & default_2.RefAttributes<NiceTouchCalibrationRef>>;
1835
+
1836
+ declare interface NiceTouchCalibrationProps {
1837
+ /** Configuration */
1838
+ config?: CalibrationConfig;
1839
+ /** Auto-start calibration */
1840
+ autoStart?: boolean;
1841
+ /** On calibration start */
1842
+ onStart?: () => void;
1843
+ /** On point calibrated */
1844
+ onPointCalibrated?: (point: CalibrationPoint, index: number) => void;
1845
+ /** On calibration complete */
1846
+ onComplete?: (matrix: CalibrationMatrix, success: boolean) => void;
1847
+ /** On calibration cancel */
1848
+ onCancel?: () => void;
1849
+ /** Children (shown when not calibrating) */
1850
+ children?: ReactNode;
1851
+ }
1852
+
1853
+ declare interface NiceTouchCalibrationRef {
1854
+ /** Get current state */
1855
+ getState: () => CalibrationState;
1856
+ /** Start calibration */
1857
+ start: () => void;
1858
+ /** Cancel calibration */
1859
+ cancel: () => void;
1860
+ /** Reset calibration */
1861
+ reset: () => void;
1862
+ /** Get calibration matrix */
1863
+ getMatrix: () => CalibrationMatrix | null;
1864
+ /** Apply matrix to transform point */
1865
+ transformPoint: (x: number, y: number) => {
1866
+ x: number;
1867
+ y: number;
1868
+ };
1869
+ /** Check if calibration exists */
1870
+ hasCalibration: () => boolean;
1871
+ /** Clear saved calibration */
1872
+ clearCalibration: () => void;
1873
+ }
1874
+
1875
+ declare interface OfflineFormsConfig {
1876
+ /** IndexedDB database name */
1877
+ dbName?: string;
1878
+ /** Auto-save interval in ms (0 = disabled) */
1879
+ autoSaveInterval?: number;
1880
+ /** Max drafts per form */
1881
+ maxDraftsPerForm?: number;
1882
+ /** Auto-submit when online */
1883
+ autoSubmitOnline?: boolean;
1884
+ /** Retry failed submissions */
1885
+ retryFailed?: boolean;
1886
+ /** Max retry attempts */
1887
+ maxRetryAttempts?: number;
1888
+ /** Retry delay in ms */
1889
+ retryDelay?: number;
1890
+ }
1891
+
1892
+ declare interface OfflineFormsState {
1893
+ /** Is online */
1894
+ isOnline: boolean;
1895
+ /** Is syncing */
1896
+ isSyncing: boolean;
1897
+ /** Draft counts by form */
1898
+ draftCounts: Record<string, number>;
1899
+ /** Pending submissions count */
1900
+ pendingCount: number;
1901
+ /** Failed submissions count */
1902
+ failedCount: number;
1903
+ /** Last sync timestamp */
1904
+ lastSyncAt?: Date;
1905
+ }
1906
+
1907
+ declare interface OfflineMediaConfig {
1908
+ /** IndexedDB database name */
1909
+ dbName?: string;
1910
+ /** Max cache size in bytes */
1911
+ maxCacheSize?: number;
1912
+ /** Max concurrent downloads */
1913
+ maxConcurrentDownloads?: number;
1914
+ /** Auto-resume downloads on reconnect */
1915
+ autoResumeOnReconnect?: boolean;
1916
+ /** Default cache duration in ms */
1917
+ defaultCacheDuration?: number;
1918
+ /** Cleanup expired automatically */
1919
+ autoCleanup?: boolean;
1920
+ /** Cleanup interval in ms */
1921
+ cleanupInterval?: number;
1922
+ }
1923
+
1924
+ declare interface OfflineMediaState {
1925
+ /** Is online */
1926
+ isOnline: boolean;
1927
+ /** Active downloads count */
1928
+ activeDownloads: number;
1929
+ /** Queued downloads count */
1930
+ queuedDownloads: number;
1931
+ /** Total cached items */
1932
+ cachedCount: number;
1933
+ /** Total cache size in bytes */
1934
+ totalCacheSize: number;
1935
+ /** Available quota (if available) */
1936
+ availableQuota?: number;
1937
+ /** Is downloading */
1938
+ isDownloading: boolean;
1939
+ }
1940
+
1941
+ declare interface OrientationInfo {
1942
+ /** Current orientation type */
1943
+ type: OrientationType_2;
1944
+ /** Rotation angle (0, 90, 180, 270) */
1945
+ angle: number;
1946
+ /** Is portrait */
1947
+ isPortrait: boolean;
1948
+ /** Is landscape */
1949
+ isLandscape: boolean;
1950
+ /** Screen width */
1951
+ width: number;
1952
+ /** Screen height */
1953
+ height: number;
1954
+ /** Aspect ratio */
1955
+ aspectRatio: number;
1956
+ }
1957
+
1958
+ declare interface OrientationLockConfig {
1959
+ /** Preferred orientation */
1960
+ preferredOrientation?: OrientationType_2;
1961
+ /** Allow user to change orientation */
1962
+ allowUserChange?: boolean;
1963
+ /** Show rotation prompt when mismatched */
1964
+ showRotationPrompt?: boolean;
1965
+ /** Lock orientation on mount */
1966
+ lockOnMount?: boolean;
1967
+ /** Auto-rotate content (CSS rotation) */
1968
+ autoRotateContent?: boolean;
1969
+ /** Supported orientations */
1970
+ supportedOrientations?: OrientationType_2[];
1971
+ }
1972
+
1973
+ declare interface OrientationState {
1974
+ /** Current orientation */
1975
+ current: OrientationType_2;
1976
+ /** Locked orientation (if any) */
1977
+ locked: OrientationType_2 | null;
1978
+ /** Is orientation locked */
1979
+ isLocked: boolean;
1980
+ /** Is current orientation supported */
1981
+ isSupported: boolean;
1982
+ /** Orientation info */
1983
+ info: OrientationInfo;
1984
+ /** Is API available */
1985
+ isApiAvailable: boolean;
1986
+ }
1987
+
1988
+ declare type OrientationType_2 = 'any' | 'natural' | 'portrait' | 'portrait-primary' | 'portrait-secondary' | 'landscape' | 'landscape-primary' | 'landscape-secondary';
1989
+
1990
+ declare type PowerMode = 'normal' | 'dim' | 'low' | 'sleep';
1991
+
1992
+ declare interface PowerModeConfig {
1993
+ /** Mode name */
1994
+ mode: PowerMode;
1995
+ /** Brightness level (0-1) */
1996
+ brightness: number;
1997
+ /** Frame rate cap */
1998
+ frameRateCap?: number;
1999
+ /** Disable animations */
2000
+ disableAnimations?: boolean;
2001
+ /** Reduce image quality */
2002
+ reduceImageQuality?: boolean;
2003
+ /** Disable background processes */
2004
+ disableBackgroundProcesses?: boolean;
2005
+ /** Wake on touch */
2006
+ wakeOnTouch?: boolean;
2007
+ /** Wake on motion (if sensor available) */
2008
+ wakeOnMotion?: boolean;
2009
+ }
2010
+
2011
+ declare type PreventionMode = 'pixel-shift' | 'color-cycling' | 'screensaver' | 'dimming' | 'invert';
2012
+
2013
+ declare type QRDataType = 'url' | 'email' | 'tel' | 'sms' | 'geo' | 'vcard' | 'vevent' | 'wifi' | 'text' | 'unknown';
2014
+
2015
+ declare type QRErrorCorrectionLevel = 'L' | 'M' | 'Q' | 'H';
2016
+
2017
+ declare interface QRGeneratorOptions {
2018
+ /** Error correction level (L=7%, M=15%, Q=25%, H=30%) */
2019
+ errorCorrection?: QRErrorCorrectionLevel;
2020
+ /** Size (width/height in pixels) */
2021
+ size?: number;
2022
+ /** Margin (quiet zone modules) */
2023
+ margin?: number;
2024
+ /** Dark module color */
2025
+ darkColor?: string;
2026
+ /** Light module color */
2027
+ lightColor?: string;
2028
+ /** Image to embed in center */
2029
+ logo?: string;
2030
+ /** Logo size (fraction of QR size) */
2031
+ logoSize?: number;
2032
+ /** Logo margin */
2033
+ logoMargin?: number;
2034
+ /** Rounded corners for modules */
2035
+ cornerRadius?: number;
2036
+ }
2037
+
2038
+ declare interface QRScannerConfig {
2039
+ /** Continuous scanning */
2040
+ continuous?: boolean;
2041
+ /** Scan interval (ms) */
2042
+ scanInterval?: number;
2043
+ /** Beep on scan */
2044
+ beepOnScan?: boolean;
2045
+ /** Vibrate on scan */
2046
+ vibrateOnScan?: boolean;
2047
+ /** Auto-focus */
2048
+ autoFocus?: boolean;
2049
+ /** Preferred camera */
2050
+ facingMode?: 'user' | 'environment';
2051
+ /** Resolution */
2052
+ resolution?: 'sd' | 'hd' | 'fhd';
2053
+ /** Parse QR data type */
2054
+ parseDataType?: boolean;
2055
+ /** Highlight detected QR */
2056
+ highlightDetected?: boolean;
2057
+ }
2058
+
2059
+ declare interface QRScannerState {
2060
+ /** Is scanning */
2061
+ isScanning: boolean;
2062
+ /** Camera ready */
2063
+ isCameraReady: boolean;
2064
+ /** Last result */
2065
+ lastResult: QRScanResult | null;
2066
+ /** Error */
2067
+ error: string | null;
2068
+ /** Is supported */
2069
+ isSupported: boolean;
2070
+ /** Has permission */
2071
+ hasPermission: boolean | null;
2072
+ /** Torch available */
2073
+ torchAvailable: boolean;
2074
+ /** Torch on */
2075
+ torchOn: boolean;
2076
+ }
2077
+
2078
+ declare interface QRScanResult {
2079
+ /** Decoded text */
2080
+ text: string;
2081
+ /** Raw bytes (if available) */
2082
+ rawBytes?: Uint8Array;
2083
+ /** QR format/version */
2084
+ format?: string;
2085
+ /** Error correction level */
2086
+ errorCorrectionLevel?: 'L' | 'M' | 'Q' | 'H';
2087
+ /** Bounding box */
2088
+ boundingBox?: {
2089
+ x: number;
2090
+ y: number;
2091
+ width: number;
2092
+ height: number;
2093
+ };
2094
+ /** Corner points */
2095
+ cornerPoints?: Array<{
2096
+ x: number;
2097
+ y: number;
2098
+ }>;
2099
+ /** Timestamp */
2100
+ timestamp: Date;
2101
+ /** Data type (URL, text, vCard, etc.) */
2102
+ dataType?: QRDataType;
2103
+ /** Parsed data (for structured types) */
2104
+ parsedData?: unknown;
2105
+ }
2106
+
2107
+ declare interface QueryOptions {
2108
+ /** Index to use for query */
2109
+ index?: string;
2110
+ /** Key range */
2111
+ range?: IDBKeyRange;
2112
+ /** Direction for cursor */
2113
+ direction?: IDBCursorDirection;
2114
+ /** Limit results */
2115
+ limit?: number;
2116
+ /** Skip results */
2117
+ offset?: number;
2118
+ }
2119
+
2120
+ declare interface RemoteCommand {
2121
+ /** Command ID */
2122
+ id: string;
2123
+ /** Command type */
2124
+ type: CommandType;
2125
+ /** Command payload */
2126
+ payload?: unknown;
2127
+ /** Timestamp */
2128
+ timestamp: Date;
2129
+ /** Acknowledged */
2130
+ acknowledged: boolean;
2131
+ /** Executed */
2132
+ executed: boolean;
2133
+ /** Result */
2134
+ result?: unknown;
2135
+ /** Error */
2136
+ error?: string;
2137
+ }
2138
+
2139
+ declare interface RemoteManagementConfig {
2140
+ /** Server URL */
2141
+ serverUrl: string;
2142
+ /** Device ID */
2143
+ deviceId: string;
2144
+ /** Device name */
2145
+ deviceName?: string;
2146
+ /** API key */
2147
+ apiKey?: string;
2148
+ /** Heartbeat interval (ms) */
2149
+ heartbeatInterval?: number;
2150
+ /** Reconnect delay (ms) */
2151
+ reconnectDelay?: number;
2152
+ /** Max reconnect attempts */
2153
+ maxReconnectAttempts?: number;
2154
+ /** Enable health monitoring */
2155
+ enableHealthMonitoring?: boolean;
2156
+ /** Health report interval (ms) */
2157
+ healthReportInterval?: number;
2158
+ /** Enable screenshot capture */
2159
+ enableScreenshot?: boolean;
2160
+ /** Enable log collection */
2161
+ enableLogs?: boolean;
2162
+ /** Log buffer size */
2163
+ logBufferSize?: number;
2164
+ }
2165
+
2166
+ declare interface RemoteManagementState {
2167
+ /** Connection status */
2168
+ status: ConnectionStatus;
2169
+ /** Is connected */
2170
+ isConnected: boolean;
2171
+ /** Last heartbeat */
2172
+ lastHeartbeat?: Date;
2173
+ /** Reconnect attempts */
2174
+ reconnectAttempts: number;
2175
+ /** Pending commands */
2176
+ pendingCommands: RemoteCommand[];
2177
+ /** Command history */
2178
+ commandHistory: RemoteCommand[];
2179
+ /** Health metrics */
2180
+ healthMetrics?: HealthMetrics;
2181
+ /** Error message */
2182
+ error?: string;
2183
+ }
2184
+
2185
+ declare interface ScannedItem {
2186
+ /** Unique ID */
2187
+ id: string;
2188
+ /** Barcode/QR value */
2189
+ value: string;
2190
+ /** Barcode format */
2191
+ format: BarcodeFormat_2;
2192
+ /** Timestamp */
2193
+ timestamp: number;
2194
+ /** Raw data */
2195
+ rawValue?: string;
2196
+ /** Quantity (for inventory) */
2197
+ quantity: number;
2198
+ /** Bounding box */
2199
+ boundingBox?: DOMRectReadOnly;
2200
+ /** Custom metadata */
2201
+ metadata?: Record<string, unknown>;
2202
+ }
2203
+
2204
+ declare interface ScreenBurnPreventionConfig {
2205
+ /** Prevention modes to use */
2206
+ modes: PreventionMode[];
2207
+ /** Inactivity timeout before activation (ms) */
2208
+ inactivityTimeout: number;
2209
+ /** Pixel shift config */
2210
+ pixelShift?: ShiftConfig;
2211
+ /** Color cycling config */
2212
+ colorCycle?: ColorCycleConfig;
2213
+ /** Dimming config */
2214
+ dimming?: DimmingConfig;
2215
+ /** Screensaver config */
2216
+ screensaver?: ScreensaverConfig;
2217
+ /** Static element detection threshold (ms) */
2218
+ staticDetectionThreshold?: number;
2219
+ /** Auto-detect static elements */
2220
+ autoDetectStatic?: boolean;
2221
+ }
2222
+
2223
+ declare interface ScreenBurnPreventionState {
2224
+ /** Is prevention active */
2225
+ isActive: boolean;
2226
+ /** Current active modes */
2227
+ activeModes: PreventionMode[];
2228
+ /** Current pixel shift X */
2229
+ shiftX: number;
2230
+ /** Current pixel shift Y */
2231
+ shiftY: number;
2232
+ /** Is dimmed */
2233
+ isDimmed: boolean;
2234
+ /** Is screensaver showing */
2235
+ isScreensaverActive: boolean;
2236
+ /** Time idle (ms) */
2237
+ idleTime: number;
2238
+ }
2239
+
2240
+ declare interface ScreenInfo {
2241
+ /** Unique identifier */
2242
+ id: string;
2243
+ /** Screen label */
2244
+ label: string;
2245
+ /** Screen width */
2246
+ width: number;
2247
+ /** Screen height */
2248
+ height: number;
2249
+ /** Available width (excluding taskbar) */
2250
+ availWidth: number;
2251
+ /** Available height (excluding taskbar) */
2252
+ availHeight: number;
2253
+ /** Left position */
2254
+ left: number;
2255
+ /** Top position */
2256
+ top: number;
2257
+ /** Device pixel ratio */
2258
+ devicePixelRatio: number;
2259
+ /** Is primary screen */
2260
+ isPrimary: boolean;
2261
+ /** Is internal display */
2262
+ isInternal?: boolean;
2263
+ /** Orientation */
2264
+ orientation: string;
2265
+ /** Color depth */
2266
+ colorDepth: number;
2267
+ }
2268
+
2269
+ declare interface ScreensaverConfig {
2270
+ /** Screensaver type */
2271
+ type: 'blank' | 'bounce' | 'matrix' | 'noise' | 'custom';
2272
+ /** Custom screensaver component */
2273
+ component?: ReactNode;
2274
+ }
2275
+
2276
+ declare interface ServiceWorkerConfig {
2277
+ /** Path to service worker file */
2278
+ swPath?: string;
2279
+ /** Service worker scope */
2280
+ scope?: string;
2281
+ /** Update check interval in ms */
2282
+ updateCheckInterval?: number;
2283
+ /** Auto-update when new version available */
2284
+ autoUpdate?: boolean;
2285
+ /** Skip waiting on new version */
2286
+ skipWaiting?: boolean;
2287
+ /** Reload page after activation */
2288
+ reloadOnActivation?: boolean;
2289
+ }
2290
+
2291
+ declare interface ServiceWorkerState_2 {
2292
+ /** Current status */
2293
+ status: ServiceWorkerStatus;
2294
+ /** Registration object */
2295
+ registration?: ServiceWorkerRegistration;
2296
+ /** Update available flag */
2297
+ updateAvailable: boolean;
2298
+ /** Waiting worker exists */
2299
+ waitingWorker: boolean;
2300
+ /** Error message if any */
2301
+ error?: string;
2302
+ /** Currently cached URLs */
2303
+ cachedUrls: string[];
2304
+ /** Cache storage info */
2305
+ caches: CacheInfo[];
2306
+ /** Is currently online */
2307
+ isOnline: boolean;
2308
+ /** Last sync time */
2309
+ lastSyncTime?: Date;
2310
+ }
2311
+
2312
+ declare type ServiceWorkerStatus = 'idle' | 'registering' | 'registered' | 'installing' | 'installed' | 'activating' | 'activated' | 'redundant' | 'error';
2313
+
2314
+ declare interface ShiftConfig {
2315
+ /** Maximum shift in pixels */
2316
+ maxShift: number;
2317
+ /** Shift interval (ms) */
2318
+ interval: number;
2319
+ /** Smooth transition */
2320
+ smooth: boolean;
2321
+ }
2322
+
2323
+ declare type StartupPhase = 'initializing' | 'loading' | 'ready' | 'error' | 'recovery';
2324
+
2325
+ declare interface StartupTask {
2326
+ /** Unique ID */
2327
+ id: string;
2328
+ /** Task name */
2329
+ name: string;
2330
+ /** Task description */
2331
+ description?: string;
2332
+ /** Priority (higher = earlier) */
2333
+ priority?: number;
2334
+ /** Dependencies (task IDs) */
2335
+ dependencies?: string[];
2336
+ /** Is critical (blocks startup on failure) */
2337
+ critical?: boolean;
2338
+ /** Timeout (ms) */
2339
+ timeout?: number;
2340
+ /** Retry count */
2341
+ retries?: number;
2342
+ /** Task function */
2343
+ execute: () => Promise<void>;
2344
+ }
2345
+
2346
+ declare interface StartupTaskResult {
2347
+ /** Task ID */
2348
+ taskId: string;
2349
+ /** Success status */
2350
+ success: boolean;
2351
+ /** Error if failed */
2352
+ error?: Error;
2353
+ /** Duration (ms) */
2354
+ duration: number;
2355
+ /** Retry count used */
2356
+ retriesUsed: number;
2357
+ }
2358
+
2359
+ declare type SymbologyCategory = 'linear' | '2d' | 'postal' | 'gs1';
2360
+
2361
+ declare interface SymbologyInfo {
2362
+ /** Symbology identifier */
2363
+ id: BarcodeSymbology;
2364
+ /** Display name */
2365
+ name: string;
2366
+ /** Category */
2367
+ category: SymbologyCategory;
2368
+ /** Description */
2369
+ description: string;
2370
+ /** Allowed characters */
2371
+ charset: string;
2372
+ /** Min length */
2373
+ minLength: number;
2374
+ /** Max length */
2375
+ maxLength: number;
2376
+ /** Fixed length (null = variable) */
2377
+ fixedLength: number | null;
2378
+ /** Supports check digit */
2379
+ hasCheckDigit: boolean;
2380
+ /** Common use cases */
2381
+ useCases: string[];
2382
+ /** Industry standard */
2383
+ standard?: string;
2384
+ /** Browser BarcodeDetector format name */
2385
+ detectorFormat?: string;
2386
+ }
2387
+
2388
+ declare interface SymbologyValidationResult {
2389
+ /** Is valid for this symbology */
2390
+ valid: boolean;
2391
+ /** Validation errors */
2392
+ errors: string[];
2393
+ /** Warnings */
2394
+ warnings: string[];
2395
+ /** Computed check digit */
2396
+ checkDigit?: string;
2397
+ /** Formatted value */
2398
+ formattedValue?: string;
2399
+ }
2400
+
2401
+ declare interface SyncHandler<T = unknown> {
2402
+ /** Handler for processing sync task */
2403
+ handler: (task: SyncTask<T>) => Promise<void>;
2404
+ /** Min time between syncs in ms */
2405
+ minInterval?: number;
2406
+ /** Whether to sync immediately when online */
2407
+ syncOnConnect?: boolean;
2408
+ }
2409
+
2410
+ declare type SyncStatus = 'pending' | 'syncing' | 'success' | 'failed' | 'cancelled';
2411
+
2412
+ declare interface SyncTask<T = unknown> {
2413
+ /** Unique task ID */
2414
+ id: string;
2415
+ /** Task tag for grouping */
2416
+ tag: string;
2417
+ /** Task data */
2418
+ data: T;
2419
+ /** Current status */
2420
+ status: SyncStatus;
2421
+ /** Created timestamp */
2422
+ createdAt: Date;
2423
+ /** Last attempted timestamp */
2424
+ lastAttemptAt?: Date;
2425
+ /** Number of attempts */
2426
+ attempts: number;
2427
+ /** Max retry attempts */
2428
+ maxAttempts: number;
2429
+ /** Error message if failed */
2430
+ error?: string;
2431
+ /** Priority (higher = more important) */
2432
+ priority: number;
2433
+ }
2434
+
2435
+ declare interface TransactionOptions {
2436
+ /** Store names to include */
2437
+ stores: string[];
2438
+ /** Transaction mode */
2439
+ mode?: IDBTransactionMode;
2440
+ /** Durability hint */
2441
+ durability?: 'default' | 'strict' | 'relaxed';
2442
+ }
2443
+
2444
+ declare interface WindowFeatures {
2445
+ /** Width */
2446
+ width?: number;
2447
+ /** Height */
2448
+ height?: number;
2449
+ /** Left position */
2450
+ left?: number;
2451
+ /** Top position */
2452
+ top?: number;
2453
+ /** Show menubar */
2454
+ menubar?: boolean;
2455
+ /** Show toolbar */
2456
+ toolbar?: boolean;
2457
+ /** Show location bar */
2458
+ location?: boolean;
2459
+ /** Show status bar */
2460
+ status?: boolean;
2461
+ /** Is resizable */
2462
+ resizable?: boolean;
2463
+ /** Show scrollbars */
2464
+ scrollbars?: boolean;
2465
+ /** Open fullscreen */
2466
+ fullscreen?: boolean;
2467
+ }
2468
+
2469
+ declare interface WindowInfo {
2470
+ /** Window reference */
2471
+ window: Window | null;
2472
+ /** Target screen */
2473
+ screen: ScreenInfo;
2474
+ /** Window ID */
2475
+ id: string;
2476
+ /** Window state */
2477
+ state: 'opening' | 'open' | 'closed' | 'error';
2478
+ /** Is fullscreen */
2479
+ isFullscreen: boolean;
2480
+ /** Window features */
2481
+ features: WindowFeatures;
2482
+ }
2483
+
2484
+ export { }