export interface GeofenceEvent { id: string; regionId: string; eventType: 'enter' | 'exit'; timestamp: number; latitude: number; longitude: number; accuracy?: number; userId?: string; metadata?: Record; } export interface ActivityEvent { id: string; activity: string; confidence: number; timestamp: number; latitude?: number; longitude?: number; userId?: string; } export interface SystemHealthEvent { id: string; type: 'health_alert' | 'status_change' | 'error'; title: string; message: string; timestamp: number; severity: 'low' | 'medium' | 'high' | 'critical'; metadata?: Record; } export interface AnalyticsData { events: GeofenceEvent[]; activities: ActivityEvent[]; healthEvents: SystemHealthEvent[]; summary: { totalEvents: number; totalActivities: number; totalHealthEvents: number; dateRange: { start: number; end: number; }; mostActiveRegions: { regionId: string; count: number; }[]; mostCommonActivities: { activity: string; count: number; }[]; }; } export interface DataManagerConfig { encryptData: boolean; encryptionKey?: string; maxEvents: number; maxActivities: number; maxHealthEvents: number; retentionDays: number; exportFormats: ('json' | 'csv')[]; anonymizeData: boolean; autoCleanup: boolean; } export declare class DataManager { private config; private encryptionKey; private static readonly STORAGE_KEYS; constructor(config?: Partial); storeGeofenceEvent(event: Omit): Promise; storeActivityEvent(event: Omit): Promise; storeHealthEvent(event: Omit): Promise; getGeofenceEvents(filter?: { regionId?: string; eventType?: 'enter' | 'exit'; startTime?: number; endTime?: number; userId?: string; }): Promise; getActivityEvents(filter?: { activity?: string; startTime?: number; endTime?: number; userId?: string; }): Promise; getHealthEvents(filter?: { type?: string; severity?: string; startTime?: number; endTime?: number; }): Promise; generateAnalytics(timeRange?: { start: number; end: number; }): Promise; exportData(format: 'json' | 'csv', timeRange?: { start: number; end: number; }): Promise; clearAllData(): Promise; clearExpiredData(): Promise; queueForSync(type: string, data: any): Promise; getSyncQueue(): Promise; clearSyncQueue(): Promise; setUserConsent(consent: { location: boolean; analytics: boolean; storage: boolean; timestamp: number; version: string; }): Promise; getUserConsent(): Promise; private saveData; private loadData; private generateId; private generateEncryptionKey; private anonymizeCoordinate; private convertToCSV; private setupAutoCleanup; }