@optifye/dashboard-core 6.3.1 → 6.3.4

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.
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { SupabaseClient as SupabaseClient$1, Session, User, AuthError } from '@s
3
3
  import { LucideProps, Share2, Download } from 'lucide-react';
4
4
  import * as React$1 from 'react';
5
5
  import React__default, { ReactNode, HTMLAttributes } from 'react';
6
+ import { EventEmitter } from 'events';
6
7
  import * as querystring from 'querystring';
7
8
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
9
  import { Modifiers } from 'react-day-picker';
@@ -1124,6 +1125,392 @@ interface SKUListProps {
1124
1125
  isLoading?: boolean;
1125
1126
  }
1126
1127
 
1128
+ /**
1129
+ * S3 Clips API Service
1130
+ * Handles fetching HLS video clips from S3 with AWS SDK integration
1131
+ * Based on the HLS streaming architecture using playlist.m3u8 files
1132
+ * Enhanced with enterprise-grade caching and performance optimizations
1133
+ */
1134
+
1135
+ /**
1136
+ * Video Index Entry for efficient navigation
1137
+ */
1138
+ interface VideoIndexEntry {
1139
+ uri: string;
1140
+ category: string;
1141
+ timestamp: string;
1142
+ videoId: string;
1143
+ workspaceId: string;
1144
+ date: string;
1145
+ shiftId: string;
1146
+ }
1147
+ /**
1148
+ * Video Index structure for storing all video paths
1149
+ */
1150
+ interface VideoIndex {
1151
+ byCategory: Map<string, VideoIndexEntry[]>;
1152
+ allVideos: VideoIndexEntry[];
1153
+ counts: Record<string, number>;
1154
+ workspaceId: string;
1155
+ date: string;
1156
+ shiftId: string;
1157
+ lastUpdated: Date;
1158
+ _debugId?: string;
1159
+ }
1160
+ /**
1161
+ * Result type that includes both clip counts and video index
1162
+ */
1163
+ interface ClipCountsWithIndex {
1164
+ counts: Record<string, number>;
1165
+ videoIndex: VideoIndex;
1166
+ }
1167
+
1168
+ /**
1169
+ * TypeScript types for the video prefetch system
1170
+ *
1171
+ * Provides comprehensive type definitions for the videoPrefetchManager,
1172
+ * smartVideoCache enhancements, and related prefetching functionality.
1173
+ */
1174
+
1175
+ declare enum PrefetchStatus$1 {
1176
+ IDLE = "idle",
1177
+ PENDING = "pending",
1178
+ RENDER_READY = "render_ready",
1179
+ FULLY_INDEXED = "fully_indexed",
1180
+ ERROR = "error"
1181
+ }
1182
+ declare enum CachePrefetchStatus {
1183
+ NONE = "none",
1184
+ PREFETCHING = "prefetching",
1185
+ RENDER_READY = "render_ready",
1186
+ FULLY_CACHED = "fully_cached"
1187
+ }
1188
+ declare enum PrefetchEvents {
1189
+ STATUS_CHANGE = "statusChange",
1190
+ RENDER_READY = "renderReady",
1191
+ FULLY_INDEXED = "fullyIndexed",
1192
+ ERROR = "error"
1193
+ }
1194
+ interface PrefetchParams$1 {
1195
+ /**
1196
+ * Workspace ID to prefetch data for
1197
+ */
1198
+ workspaceId: string;
1199
+ /**
1200
+ * Date in YYYY-MM-DD format
1201
+ */
1202
+ date: string;
1203
+ /**
1204
+ * Shift ID as string ('0' for day, '1' for night)
1205
+ */
1206
+ shift: string;
1207
+ }
1208
+ interface PrefetchRequest {
1209
+ /**
1210
+ * Request parameters
1211
+ */
1212
+ params: PrefetchParams$1;
1213
+ /**
1214
+ * Promise for the prefetch operation
1215
+ */
1216
+ promise: Promise<ClipCountsWithIndex | null>;
1217
+ /**
1218
+ * Current status of the request
1219
+ */
1220
+ status: PrefetchStatus$1;
1221
+ /**
1222
+ * Cached data (null until available)
1223
+ */
1224
+ data: ClipCountsWithIndex | null;
1225
+ /**
1226
+ * Any error that occurred
1227
+ */
1228
+ error: Error | null;
1229
+ /**
1230
+ * Timestamp when request was created or last updated
1231
+ */
1232
+ timestamp: number;
1233
+ /**
1234
+ * Set of subscriber IDs tracking this request
1235
+ */
1236
+ subscribers: Set<string>;
1237
+ }
1238
+ type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
1239
+ type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1240
+ type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1241
+ type ErrorCallback$1 = (key: string, error: Error) => void;
1242
+ interface PrefetchSubscriptionCallbacks {
1243
+ /**
1244
+ * Called when the prefetch status changes
1245
+ */
1246
+ onStatusChange?: StatusChangeCallback$1;
1247
+ /**
1248
+ * Called when data becomes render-ready (counts available)
1249
+ */
1250
+ onRenderReady?: RenderReadyCallback$1;
1251
+ /**
1252
+ * Called when data becomes fully indexed (complete video index available)
1253
+ */
1254
+ onFullyIndexed?: FullyIndexedCallback$1;
1255
+ /**
1256
+ * Called when an error occurs during prefetching
1257
+ */
1258
+ onError?: ErrorCallback$1;
1259
+ }
1260
+ interface PrefetchStatusResult {
1261
+ /**
1262
+ * Current prefetch status
1263
+ */
1264
+ status: PrefetchStatus$1;
1265
+ /**
1266
+ * Available data (null until render-ready)
1267
+ */
1268
+ data: ClipCountsWithIndex | null;
1269
+ /**
1270
+ * Any error that occurred
1271
+ */
1272
+ error: Error | null;
1273
+ /**
1274
+ * Whether data is ready for rendering (counts available)
1275
+ */
1276
+ isRenderReady: boolean;
1277
+ /**
1278
+ * Whether full video index is available
1279
+ */
1280
+ isFullyIndexed: boolean;
1281
+ }
1282
+ interface PrefetchManagerStats {
1283
+ /**
1284
+ * Total number of active requests
1285
+ */
1286
+ totalRequests: number;
1287
+ /**
1288
+ * Breakdown of requests by status
1289
+ */
1290
+ statusBreakdown: Record<PrefetchStatus$1, number>;
1291
+ /**
1292
+ * Age of the oldest request in milliseconds
1293
+ */
1294
+ oldestRequestAge: number;
1295
+ /**
1296
+ * Total number of subscribers across all requests
1297
+ */
1298
+ totalSubscribers: number;
1299
+ }
1300
+ interface PrefetchManagerConfig {
1301
+ /**
1302
+ * TTL for requests in milliseconds
1303
+ */
1304
+ requestTTL?: number;
1305
+ /**
1306
+ * Cleanup interval in milliseconds
1307
+ */
1308
+ cleanupInterval?: number;
1309
+ /**
1310
+ * Maximum concurrent requests
1311
+ */
1312
+ maxConcurrentRequests?: number;
1313
+ }
1314
+ interface UsePrefetchClipCountsOptions$1 {
1315
+ /**
1316
+ * Workspace ID to prefetch counts for
1317
+ */
1318
+ workspaceId: string;
1319
+ /**
1320
+ * Optional date string (YYYY-MM-DD). If not provided, uses operational date
1321
+ */
1322
+ date?: string;
1323
+ /**
1324
+ * Optional shift ID (0 = day, 1 = night). If not provided, uses current shift
1325
+ */
1326
+ shift?: number | string;
1327
+ /**
1328
+ * Whether to enable prefetching. Defaults to true
1329
+ */
1330
+ enabled?: boolean;
1331
+ /**
1332
+ * Whether to build full video index. Defaults to true
1333
+ */
1334
+ buildIndex?: boolean;
1335
+ /**
1336
+ * Subscriber ID for tracking. Auto-generated if not provided
1337
+ */
1338
+ subscriberId?: string;
1339
+ }
1340
+ interface UsePrefetchClipCountsResult$1 {
1341
+ /**
1342
+ * Current prefetch status
1343
+ */
1344
+ status: PrefetchStatus$1;
1345
+ /**
1346
+ * Clip counts data (available when render ready or fully indexed)
1347
+ */
1348
+ data: ClipCountsWithIndex | null;
1349
+ /**
1350
+ * Any error that occurred during prefetching
1351
+ */
1352
+ error: Error | null;
1353
+ /**
1354
+ * Whether data is ready for rendering (counts available)
1355
+ */
1356
+ isRenderReady: boolean;
1357
+ /**
1358
+ * Whether full video index is available
1359
+ */
1360
+ isFullyIndexed: boolean;
1361
+ /**
1362
+ * Whether the prefetch is currently in progress
1363
+ */
1364
+ isLoading: boolean;
1365
+ /**
1366
+ * Manual trigger function for re-prefetching
1367
+ */
1368
+ prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
1369
+ /**
1370
+ * Cache key used for this request
1371
+ */
1372
+ cacheKey: string;
1373
+ }
1374
+ interface CacheEntryWithPrefetch<T> {
1375
+ /**
1376
+ * Cached data
1377
+ */
1378
+ data: T;
1379
+ /**
1380
+ * Timestamp when cached
1381
+ */
1382
+ timestamp: number;
1383
+ /**
1384
+ * Number of times accessed
1385
+ */
1386
+ accessCount: number;
1387
+ /**
1388
+ * Estimated size in bytes
1389
+ */
1390
+ size: number;
1391
+ /**
1392
+ * Cache priority level
1393
+ */
1394
+ priority: number;
1395
+ /**
1396
+ * Prefetch status of this entry
1397
+ */
1398
+ prefetchStatus?: CachePrefetchStatus;
1399
+ /**
1400
+ * Timestamp when prefetch status was set
1401
+ */
1402
+ prefetchTimestamp?: number;
1403
+ }
1404
+ type CachePrefetchStatusCallback = (key: string, status: CachePrefetchStatus, previousStatus?: CachePrefetchStatus) => void;
1405
+ interface ExtendedCacheMetrics {
1406
+ /**
1407
+ * Cache hit count
1408
+ */
1409
+ hits: number;
1410
+ /**
1411
+ * Cache miss count
1412
+ */
1413
+ misses: number;
1414
+ /**
1415
+ * Number of evictions
1416
+ */
1417
+ evictions: number;
1418
+ /**
1419
+ * Total cache size in bytes
1420
+ */
1421
+ totalSize: number;
1422
+ /**
1423
+ * Total number of entries
1424
+ */
1425
+ entryCount: number;
1426
+ /**
1427
+ * Hit rate as a percentage (0-1)
1428
+ */
1429
+ hitRate: number;
1430
+ /**
1431
+ * Prefetch status breakdown
1432
+ */
1433
+ prefetchStats?: {
1434
+ none: number;
1435
+ prefetching: number;
1436
+ renderReady: number;
1437
+ fullyCached: number;
1438
+ };
1439
+ }
1440
+ interface PrefetchOptions {
1441
+ /**
1442
+ * Dashboard configuration for S3 service
1443
+ */
1444
+ dashboardConfig: DashboardConfig;
1445
+ /**
1446
+ * Subscriber ID for tracking
1447
+ */
1448
+ subscriberId?: string;
1449
+ /**
1450
+ * Whether to build full video index
1451
+ */
1452
+ buildIndex?: boolean;
1453
+ /**
1454
+ * Priority level for this prefetch operation
1455
+ */
1456
+ priority?: 'low' | 'normal' | 'high';
1457
+ /**
1458
+ * Timeout for the operation in milliseconds
1459
+ */
1460
+ timeout?: number;
1461
+ }
1462
+ interface PrefetchResult {
1463
+ /**
1464
+ * The prefetched data
1465
+ */
1466
+ data: ClipCountsWithIndex | null;
1467
+ /**
1468
+ * Whether this came from cache
1469
+ */
1470
+ fromCache: boolean;
1471
+ /**
1472
+ * Time taken to fetch/retrieve in milliseconds
1473
+ */
1474
+ duration: number;
1475
+ /**
1476
+ * Final status after operation
1477
+ */
1478
+ status: PrefetchStatus$1;
1479
+ /**
1480
+ * Any warnings during the operation
1481
+ */
1482
+ warnings?: string[];
1483
+ }
1484
+ declare class PrefetchError extends Error {
1485
+ readonly code: string;
1486
+ readonly params?: PrefetchParams$1 | undefined;
1487
+ readonly originalError?: Error | undefined;
1488
+ constructor(message: string, code: string, params?: PrefetchParams$1 | undefined, originalError?: Error | undefined);
1489
+ }
1490
+ declare class PrefetchTimeoutError extends PrefetchError {
1491
+ constructor(params: PrefetchParams$1, timeout: number);
1492
+ }
1493
+ declare class PrefetchConfigurationError extends PrefetchError {
1494
+ constructor(message: string, params?: PrefetchParams$1);
1495
+ }
1496
+ declare function isPrefetchError(error: unknown): error is PrefetchError;
1497
+ declare function isValidPrefetchParams(params: unknown): params is PrefetchParams$1;
1498
+ declare function isValidPrefetchStatus(status: unknown): status is PrefetchStatus$1;
1499
+ type PrefetchKey = string;
1500
+ type SubscriberId = string;
1501
+ type CleanupFunction = () => void;
1502
+ interface IPrefetchManager {
1503
+ prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
1504
+ getStatus(params: PrefetchParams$1): PrefetchStatusResult;
1505
+ isDataAvailable(params: PrefetchParams$1): boolean;
1506
+ getCachedData(params: PrefetchParams$1): ClipCountsWithIndex | null;
1507
+ subscribe(params: PrefetchParams$1, subscriberId: string, callbacks: PrefetchSubscriptionCallbacks): CleanupFunction;
1508
+ cancel(params: PrefetchParams$1, subscriberId?: string): void;
1509
+ clear(): void;
1510
+ getStats(): PrefetchManagerStats;
1511
+ destroy(): void;
1512
+ }
1513
+
1127
1514
  interface DashboardProviderProps {
1128
1515
  config: Partial<DashboardConfig>;
1129
1516
  children: React$1.ReactNode;
@@ -2269,43 +2656,131 @@ interface UseTicketHistoryReturn {
2269
2656
  declare function useTicketHistory(companyId?: string): UseTicketHistoryReturn;
2270
2657
 
2271
2658
  /**
2272
- * S3 Clips API Service
2273
- * Handles fetching HLS video clips from S3 with AWS SDK integration
2274
- * Based on the HLS streaming architecture using playlist.m3u8 files
2275
- * Enhanced with enterprise-grade caching and performance optimizations
2659
+ * Video Prefetch Manager
2660
+ *
2661
+ * Centralized singleton for managing video clip prefetching across the application.
2662
+ * Prevents duplicate API requests and provides event-driven status updates.
2663
+ *
2664
+ * Features:
2665
+ * - Singleton pattern with Promise caching
2666
+ * - Two-phase loading: RENDER_READY → FULLY_INDEXED
2667
+ * - Event-driven architecture for real-time status updates
2668
+ * - Thread-safe state management
2669
+ * - Automatic cleanup and error handling
2276
2670
  */
2277
2671
 
2278
- /**
2279
- * Video Index Entry for efficient navigation
2280
- */
2281
- interface VideoIndexEntry {
2282
- uri: string;
2283
- category: string;
2284
- timestamp: string;
2285
- videoId: string;
2286
- workspaceId: string;
2287
- date: string;
2288
- shiftId: string;
2672
+ declare enum PrefetchStatus {
2673
+ IDLE = "idle",
2674
+ PENDING = "pending",
2675
+ RENDER_READY = "render_ready",
2676
+ FULLY_INDEXED = "fully_indexed",
2677
+ ERROR = "error"
2289
2678
  }
2290
- /**
2291
- * Video Index structure for storing all video paths
2292
- */
2293
- interface VideoIndex {
2294
- byCategory: Map<string, VideoIndexEntry[]>;
2295
- allVideos: VideoIndexEntry[];
2296
- counts: Record<string, number>;
2679
+ interface PrefetchParams {
2297
2680
  workspaceId: string;
2298
2681
  date: string;
2299
- shiftId: string;
2300
- lastUpdated: Date;
2682
+ shift: string;
2301
2683
  }
2684
+ type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
2685
+ type RenderReadyCallback = (key: string, data: ClipCountsWithIndex) => void;
2686
+ type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex) => void;
2687
+ type ErrorCallback = (key: string, error: Error) => void;
2302
2688
  /**
2303
- * Result type that includes both clip counts and video index
2689
+ * Centralized Video Prefetch Manager
2690
+ *
2691
+ * Manages video clip prefetching with Promise caching and event-driven updates.
2692
+ * Prevents duplicate requests and provides granular loading states.
2304
2693
  */
2305
- interface ClipCountsWithIndex {
2306
- counts: Record<string, number>;
2307
- videoIndex: VideoIndex;
2694
+ declare class VideoPrefetchManager extends EventEmitter {
2695
+ private requests;
2696
+ private s3Services;
2697
+ private cleanupInterval;
2698
+ private readonly REQUEST_TTL;
2699
+ private readonly CLEANUP_INTERVAL;
2700
+ private readonly MAX_CONCURRENT_REQUESTS;
2701
+ constructor();
2702
+ /**
2703
+ * Generate cache key for request parameters
2704
+ */
2705
+ private generateKey;
2706
+ /**
2707
+ * Get or create S3 service instance for dashboard config
2708
+ */
2709
+ private getS3Service;
2710
+ /**
2711
+ * Emit status change event with error handling
2712
+ */
2713
+ private safeEmit;
2714
+ /**
2715
+ * Update request status and emit events
2716
+ */
2717
+ private updateRequestStatus;
2718
+ /**
2719
+ * Perform the actual prefetch operation with timeout protection
2720
+ */
2721
+ private executePrefetch;
2722
+ /**
2723
+ * Perform the actual prefetch work
2724
+ */
2725
+ private performPrefetchWork;
2726
+ /**
2727
+ * Start prefetch operation for given parameters
2728
+ */
2729
+ prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
2730
+ /**
2731
+ * Get current status of a prefetch request
2732
+ */
2733
+ getStatus(params: PrefetchParams): {
2734
+ status: PrefetchStatus;
2735
+ data: ClipCountsWithIndex | null;
2736
+ error: Error | null;
2737
+ isRenderReady: boolean;
2738
+ isFullyIndexed: boolean;
2739
+ };
2740
+ /**
2741
+ * Check if data is available (either render-ready or fully indexed)
2742
+ */
2743
+ isDataAvailable(params: PrefetchParams): boolean;
2744
+ /**
2745
+ * Get cached data if available
2746
+ */
2747
+ getCachedData(params: PrefetchParams): ClipCountsWithIndex | null;
2748
+ /**
2749
+ * Subscribe to status changes for specific request
2750
+ */
2751
+ subscribe(params: PrefetchParams, subscriberId: string, callbacks: {
2752
+ onStatusChange?: StatusChangeCallback;
2753
+ onRenderReady?: RenderReadyCallback;
2754
+ onFullyIndexed?: FullyIndexedCallback;
2755
+ onError?: ErrorCallback;
2756
+ }): () => void;
2757
+ /**
2758
+ * Cancel a prefetch request
2759
+ */
2760
+ cancel(params: PrefetchParams, subscriberId?: string): void;
2761
+ /**
2762
+ * Clear all requests (useful for testing or reset)
2763
+ */
2764
+ clear(): void;
2765
+ /**
2766
+ * Get statistics about current requests
2767
+ */
2768
+ getStats(): {
2769
+ totalRequests: number;
2770
+ statusBreakdown: Record<PrefetchStatus, number>;
2771
+ oldestRequestAge: number;
2772
+ totalSubscribers: number;
2773
+ };
2774
+ /**
2775
+ * Start cleanup task to remove old requests
2776
+ */
2777
+ private startCleanup;
2778
+ /**
2779
+ * Stop cleanup task
2780
+ */
2781
+ destroy(): void;
2308
2782
  }
2783
+ declare const videoPrefetchManager: VideoPrefetchManager;
2309
2784
 
2310
2785
  /**
2311
2786
  * usePrefetchClipCounts Hook
@@ -2313,6 +2788,8 @@ interface ClipCountsWithIndex {
2313
2788
  * Prefetches clip counts for video clips when workspace detail page loads.
2314
2789
  * This hook is designed to start fetching data before the user clicks on the clips tab,
2315
2790
  * enabling 70-90% faster rendering when they do access the clips.
2791
+ *
2792
+ * Enhanced with videoPrefetchManager integration for deduplication and event-driven updates.
2316
2793
  */
2317
2794
 
2318
2795
  interface UsePrefetchClipCountsOptions {
@@ -2332,14 +2809,113 @@ interface UsePrefetchClipCountsOptions {
2332
2809
  * Whether to enable prefetching. Defaults to true
2333
2810
  */
2334
2811
  enabled?: boolean;
2812
+ /**
2813
+ * Whether to build full video index. Defaults to true
2814
+ */
2815
+ buildIndex?: boolean;
2816
+ /**
2817
+ * Subscriber ID for tracking. Auto-generated if not provided
2818
+ */
2819
+ subscriberId?: string;
2820
+ }
2821
+ interface UsePrefetchClipCountsResult {
2822
+ /**
2823
+ * Current prefetch status
2824
+ */
2825
+ status: PrefetchStatus;
2826
+ /**
2827
+ * Clip counts data (available when render ready or fully indexed)
2828
+ */
2829
+ data: ClipCountsWithIndex | null;
2830
+ /**
2831
+ * Any error that occurred during prefetching
2832
+ */
2833
+ error: Error | null;
2834
+ /**
2835
+ * Whether data is ready for rendering (counts available)
2836
+ */
2837
+ isRenderReady: boolean;
2838
+ /**
2839
+ * Whether full video index is available
2840
+ */
2841
+ isFullyIndexed: boolean;
2842
+ /**
2843
+ * Whether the prefetch is currently in progress
2844
+ */
2845
+ isLoading: boolean;
2846
+ /**
2847
+ * Manual trigger function for re-prefetching
2848
+ */
2849
+ prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
2850
+ /**
2851
+ * Cache key used for this request
2852
+ */
2853
+ cacheKey: string;
2335
2854
  }
2336
2855
  /**
2337
2856
  * Hook to prefetch clip counts and build video index for faster clips tab loading
2857
+ * Enhanced with videoPrefetchManager integration
2338
2858
  */
2339
- declare const usePrefetchClipCounts: ({ workspaceId, date, shift, enabled }: UsePrefetchClipCountsOptions) => {
2340
- prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
2341
- cacheKey: string;
2342
- };
2859
+ declare const usePrefetchClipCounts: ({ workspaceId, date, shift, enabled, buildIndex, subscriberId }: UsePrefetchClipCountsOptions) => UsePrefetchClipCountsResult;
2860
+
2861
+ interface HourlyAchievement {
2862
+ currentValue: number;
2863
+ targetValue: number;
2864
+ timeRange: string;
2865
+ timestamp: Date;
2866
+ workspaceId: string;
2867
+ extraPieces: number;
2868
+ }
2869
+ interface UseHourlyTargetAchievementsProps {
2870
+ hourlyData: number[];
2871
+ targetThreshold: number;
2872
+ shiftStart: string;
2873
+ enabled: boolean;
2874
+ }
2875
+ interface UseHourlyTargetAchievementsResult {
2876
+ latestAchievement: HourlyAchievement | null;
2877
+ hasNewAchievements: boolean;
2878
+ clearAchievement: () => void;
2879
+ }
2880
+ /**
2881
+ * Production hook to detect when hourly targets are achieved at the end of each hour
2882
+ * Triggers notifications for positive reinforcement when targets are exceeded
2883
+ */
2884
+ declare const useHourlyTargetAchievements: ({ hourlyData, targetThreshold, shiftStart, enabled }: UseHourlyTargetAchievementsProps) => UseHourlyTargetAchievementsResult;
2885
+
2886
+ interface TargetMiss {
2887
+ metricName: string;
2888
+ actualValue: number;
2889
+ targetValue: number;
2890
+ timestamp: Date;
2891
+ workspaceId: string;
2892
+ }
2893
+ interface UseHourlyTargetMissesProps {
2894
+ hourlyData: number[];
2895
+ targetThreshold: number;
2896
+ shiftStart: string;
2897
+ enabled: boolean;
2898
+ }
2899
+ interface UseHourlyTargetMissesResult {
2900
+ latestMiss: TargetMiss | null;
2901
+ hasNewMiss: boolean;
2902
+ clearMiss: () => void;
2903
+ }
2904
+ /**
2905
+ * Production hook to detect when hourly targets are NOT reached at the end of each hour
2906
+ * Triggers notifications for encouragement when targets are missed
2907
+ */
2908
+ declare const useHourlyTargetMisses: ({ hourlyData, targetThreshold, shiftStart, enabled }: UseHourlyTargetMissesProps) => UseHourlyTargetMissesResult;
2909
+
2910
+ interface UseHourEndTimerProps {
2911
+ onHourEnd: () => void;
2912
+ enabled: boolean;
2913
+ }
2914
+ /**
2915
+ * Hook that triggers a callback exactly at the top of each hour (6:00, 7:00, etc.)
2916
+ * Sets up a single timer to fire when the next whole hour begins
2917
+ */
2918
+ declare const useHourEndTimer: ({ onHourEnd, enabled }: UseHourEndTimerProps) => void;
2343
2919
 
2344
2920
  /**
2345
2921
  * Interface for navigation method used across packages
@@ -2867,6 +3443,95 @@ declare class CacheService {
2867
3443
  }
2868
3444
  declare const cacheService: CacheService;
2869
3445
 
3446
+ /**
3447
+ * Lightweight Audio Service for Dashboard Notifications
3448
+ * Handles device-agnostic audio playback with fallback strategies
3449
+ */
3450
+ interface AudioConfig {
3451
+ enabled: boolean;
3452
+ volume: number;
3453
+ }
3454
+ declare class AudioServiceClass {
3455
+ private config;
3456
+ private audioContext?;
3457
+ private isInitialized;
3458
+ private userInteractionReceived;
3459
+ /**
3460
+ * Initialize audio service - must be called after user interaction
3461
+ */
3462
+ initialize(): Promise<boolean>;
3463
+ /**
3464
+ * Mark that user interaction has occurred (required for audio in many browsers)
3465
+ */
3466
+ markUserInteraction(): void;
3467
+ /**
3468
+ * Update audio configuration
3469
+ */
3470
+ updateConfig(config: Partial<AudioConfig>): void;
3471
+ /**
3472
+ * Play congratulations sound with multiple fallback strategies
3473
+ */
3474
+ playCongratsSound(): Promise<void>;
3475
+ /**
3476
+ * Play empathetic encouragement sound
3477
+ */
3478
+ playEncouragementSound(): Promise<void>;
3479
+ /**
3480
+ * Generate and play a cheerful celebration fanfare using Web Audio API
3481
+ */
3482
+ private playGeneratedCongratsSound;
3483
+ /**
3484
+ * Play a victory fanfare - uplifting trumpet-like sound
3485
+ */
3486
+ private playVictoryFanfare;
3487
+ /**
3488
+ * Play cheerful bell sounds
3489
+ */
3490
+ private playCheerfulBells;
3491
+ /**
3492
+ * Play a triumphant final chord
3493
+ */
3494
+ private playTriumphantChord;
3495
+ /**
3496
+ * Helper method to play an audio buffer
3497
+ */
3498
+ private playBuffer;
3499
+ /**
3500
+ * Generate and play empathetic encouragement sound using Web Audio API
3501
+ */
3502
+ private playGeneratedEncouragementSound;
3503
+ /**
3504
+ * Play a gentle, warm tone
3505
+ */
3506
+ private playGentleTone;
3507
+ /**
3508
+ * Play supportive chime sounds
3509
+ */
3510
+ private playSupportiveChime;
3511
+ /**
3512
+ * Play a hopeful, uplifting chord
3513
+ */
3514
+ private playHopefulChord;
3515
+ /**
3516
+ * Play empathetic encouragement sound using HTML5 Audio (fallback)
3517
+ */
3518
+ private playEncouragementDataUriSound;
3519
+ /**
3520
+ * Play cheerful celebration sound using HTML5 Audio (fallback for older browsers)
3521
+ */
3522
+ private playDataUriSound;
3523
+ /**
3524
+ * Check if audio is supported and ready
3525
+ */
3526
+ isReady(): boolean;
3527
+ /**
3528
+ * Get current configuration
3529
+ */
3530
+ getConfig(): AudioConfig;
3531
+ }
3532
+ declare const AudioService: AudioServiceClass;
3533
+ declare const useAudioService: () => AudioServiceClass;
3534
+
2870
3535
  /**
2871
3536
  * Helper object for making authenticated API requests using Supabase auth token.
2872
3537
  * Assumes endpoints are relative to the apiBaseUrl configured in DashboardConfig.
@@ -3600,6 +4265,37 @@ interface BaseHistoryCalendarProps {
3600
4265
  }
3601
4266
  declare const BaseHistoryCalendar: React__default.FC<BaseHistoryCalendarProps>;
3602
4267
 
4268
+ interface CongratulationsOverlayProps {
4269
+ /** The achievement that triggered this congratulations */
4270
+ achievement: HourlyAchievement | null;
4271
+ /** Duration to show the overlay (in milliseconds) */
4272
+ duration?: number;
4273
+ /** Whether to show the overlay */
4274
+ isVisible?: boolean;
4275
+ /** Callback when overlay is dismissed */
4276
+ onDismiss?: () => void;
4277
+ /** Additional CSS classes */
4278
+ className?: string;
4279
+ }
4280
+ /**
4281
+ * Full-screen achievement celebration overlay for production environments
4282
+ * Features professional full-screen design with clear metrics and celebration
4283
+ */
4284
+ declare const CongratulationsOverlay: React__default.FC<CongratulationsOverlayProps>;
4285
+
4286
+ interface EncouragementOverlayProps {
4287
+ isVisible: boolean;
4288
+ onClose: () => void;
4289
+ targetValue: number;
4290
+ actualValue: number;
4291
+ metricName: string;
4292
+ }
4293
+ /**
4294
+ * Full-screen encouragement overlay for production environments
4295
+ * Features professional full-screen design with clear metrics and supportive messaging
4296
+ */
4297
+ declare const EncouragementOverlay: React__default.FC<EncouragementOverlayProps>;
4298
+
3603
4299
  interface ShiftDisplayProps {
3604
4300
  className?: string;
3605
4301
  variant?: 'default' | 'enhanced';
@@ -5150,4 +5846,4 @@ interface ThreadSidebarProps {
5150
5846
  }
5151
5847
  declare const ThreadSidebar: React__default.FC<ThreadSidebarProps>;
5152
5848
 
5153
- export { ACTION_NAMES, AIAgentView, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedTargetsView, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type ClipCounts, type ComponentOverride, type CoreComponents, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, EmptyStateMessage, type EmptyStateMessageProps, type EndpointsConfig, type EntityConfig, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type ISTDateProps, ISTTimer, type ISTTimerProps, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, Legend, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, LineMonthlyPdfGenerator, type LineMonthlyPdfGeneratorProps, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LiveTimer, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NoWorkspaceData, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RoutePath, type S3ClipsAPIParams, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$2 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type StreamProxyConfig, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UseActiveBreaksResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, WorkspaceHistoryCalendar, WorkspaceMetricCards, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, type WorkspaceMonthlyMetric, WorkspaceMonthlyPdfGenerator, type WorkspaceMonthlyPdfGeneratorProps, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, authOTPService, authRateLimitService, cacheService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createStreamProxyHandler, createSupabaseClient, createThrottledReload, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAuth, useAuthConfig, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPreloader, whatsappService, withAuth, withRegistry, workspaceService };
5849
+ export { ACTION_NAMES, AIAgentView, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AudioService, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedTargetsView, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, type CacheEntryWithPrefetch, CachePrefetchStatus, type CachePrefetchStatusCallback, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type CleanupFunction, type ClipCounts, type ClipCountsWithIndex, type ComponentOverride, CongratulationsOverlay, type CongratulationsOverlayProps, type CoreComponents, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, EmptyStateMessage, type EmptyStateMessageProps, EncouragementOverlay, type EndpointsConfig, type EntityConfig, type ErrorCallback$1 as ErrorCallback, type ExtendedCacheMetrics, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, type FullyIndexedCallback$1 as FullyIndexedCallback, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, type HourlyAchievement, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type IPrefetchManager, type ISTDateProps, ISTTimer, type ISTTimerProps, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, Legend, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, LineMonthlyPdfGenerator, type LineMonthlyPdfGeneratorProps, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LiveTimer, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NoWorkspaceData, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, PrefetchConfigurationError, PrefetchError, PrefetchEvents, type PrefetchKey, type PrefetchManagerConfig, type PrefetchManagerStats, type PrefetchOptions, type PrefetchParams$1 as PrefetchParams, type PrefetchRequest, type PrefetchResult, PrefetchStatus$1 as PrefetchStatus, type PrefetchStatusResult, type PrefetchSubscriptionCallbacks, PrefetchTimeoutError, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RenderReadyCallback$1 as RenderReadyCallback, type RoutePath, type S3ClipsAPIParams, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$2 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type StatusChangeCallback$1 as StatusChangeCallback, type StreamProxyConfig, type SubscriberId, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UseActiveBreaksResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UsePrefetchClipCountsOptions$1 as UsePrefetchClipCountsOptions, type UsePrefetchClipCountsResult$1 as UsePrefetchClipCountsResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, WorkspaceHistoryCalendar, WorkspaceMetricCards, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, type WorkspaceMonthlyMetric, WorkspaceMonthlyPdfGenerator, type WorkspaceMonthlyPdfGeneratorProps, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, authOTPService, authRateLimitService, cacheService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createStreamProxyHandler, createSupabaseClient, createThrottledReload, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isPrefetchError, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAudioService, useAuth, useAuthConfig, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPrefetchManager, videoPreloader, whatsappService, withAuth, withRegistry, workspaceService };