UNPKG

fleeta-api-lib

Version:

A comprehensive library for fleet management applications - API, Auth, Device management

122 lines 3.46 kB
/** * GPS Data Provider Type Definitions * Defines interfaces and types for GPS data processing and distribution * * Based on official GPS WebSocket protocol: * - Data encoding: JSON * - Request format: wsClient.send(JSON.stringify(payload)) * - Coordinate format: "lat_lng" (underscore separator) * - SequenceId: UNIX timestamp milliseconds (recommended) */ import type { DeviceGpsInfo } from '../gps-websocket/types'; /** * GPS Data Provider configuration interface */ export interface GpsDataProviderConfig { updateThreshold: { position: number; speed: number; interval: number; }; enableCaching: boolean; cacheSize: number; autoFilter: { excludeInactive: boolean; excludeInvalidCoords: boolean; excludeStatic: boolean; minSpeedThreshold: number; }; maxDevicesPerUpdate: number; enableBatching: boolean; batchInterval: number; } /** * GPS Data request configuration for different actions */ export interface GpsDataRequestConfig { action: string; userEmail?: string; sw?: string; ne?: string; psn?: string; psnList?: string[]; groupIdList?: string[]; useCache?: boolean; cacheTimeout?: number; } /** * GPS Data Provider action types */ export type GpsDataProviderAction = 'gpsZoneNoAuth' | 'gpsZoneMyDevices' | 'gpsZoneAllDevices' | 'gpsZoneGroupMyDevices' | 'gpsZoneGroupAllDevices' | 'gpsPsnsMyDevices' | 'gpsPsnsSpecificDevice' | 'gpsPsnsMultiLiveView'; /** * GPS Data statistics interface */ export interface GpsDataStats { isConnected: boolean; lastUpdateTime: Date | null; updateCount: number; updatesPerMinute: number; averageUpdateInterval: number; totalDevices: number; activeDevices: number; inactiveDevices: number; videoSharingDevices: number; processedUpdates: number; skippedUpdates: number; optimizationRatio: number; errorCount: number; lastError: string | null; } /** * GPS Data Manager callback types */ export interface GlobalGpsStats { totalProviders: number; totalDevices: number; totalUpdatesPerMinute: number; memoryUsage: { providers: number; cachedData: number; callbacks: number; }; performance: { averageProcessingTime: number; peakProcessingTime: number; totalProcessedUpdates: number; }; } export type GpsManagerDataCallback = (allData: Map<string, DeviceGpsInfo[]>) => void; export type GpsManagerStatsCallback = (stats: GlobalGpsStats) => void; export interface GpsDataProvider { getState(): GpsDataProviderState; destroy(): void; clearAllCallbacks(): void; } export type GpsManagerProviderCallback = (providerId: string, provider?: GpsDataProvider) => void; /** * GPS Data Provider state interface */ export interface GpsDataProviderState { isConnected: boolean; isInitialized: boolean; currentDevices: DeviceGpsInfo[]; deviceCount: number; stats: GpsDataStats; callbackCount: number; } /** * Data processing result interface */ export interface DataProcessingResult { processed: DeviceGpsInfo[]; skipped: DeviceGpsInfo[]; added: DeviceGpsInfo[]; updated: DeviceGpsInfo[]; removed: string[]; hasSignificantChanges: boolean; } /** * Default configuration values */ export declare const DEFAULT_GPS_PROVIDER_CONFIG: Partial<GpsDataProviderConfig>; //# sourceMappingURL=types.d.ts.map