/** * Plugin Analytics Tracker - Tracks plugin usage and performance metrics */ import { EventEmitter } from 'events'; export interface PluginUsageMetrics { pluginId: string; installDate: Date; lastUsed: Date; activationCount: number; deactivationCount: number; totalActiveTime: number; commandsExecuted: number; errorsEncountered: number; performanceMetrics: { averageActivationTime: number; averageCommandExecutionTime: number; memoryUsage: number; cpuUsage: number; }; eventMetrics: { eventsPublished: number; eventsSubscribed: number; eventHandlingErrors: number; }; } export interface SystemAnalytics { totalPlugins: number; activePlugins: number; totalUsageTime: number; totalCommands: number; totalErrors: number; mostUsedPlugins: Array<{ pluginId: string; usageTime: number; }>; errorReport: Array<{ pluginId: string; errorCount: number; lastError: Date; }>; performanceSummary: { averageMemoryUsage: number; averageCpuUsage: number; totalMemoryUsed: number; }; } export declare class PluginAnalyticsTracker extends EventEmitter { private config; private metrics; private activationTimes; private commandStartTimes; private flushInterval; private metricsBuffer; constructor(config?: { flushIntervalMs?: number; maxBufferSize?: number; enablePerformanceTracking?: boolean; }); /** * Track plugin installation */ trackInstall(pluginId: string): void; /** * Track plugin uninstallation */ trackUninstall(pluginId: string): void; /** * Track plugin activation */ trackActivation(pluginId: string): void; /** * Track plugin deactivation */ trackDeactivation(pluginId: string): void; /** * Track plugin reload */ trackReload(pluginId: string): void; /** * Track plugin update */ trackUpdate(pluginId: string, fromVersion: string, toVersion: string): void; /** * Track command execution */ trackCommandStart(pluginId: string, command: string): void; /** * Track command completion */ trackCommandEnd(pluginId: string, command: string, success?: boolean): void; /** * Track plugin error */ trackError(pluginId: string, error: any, context?: string): void; /** * Track event publishing */ trackEventPublished(pluginId: string, eventType: string): void; /** * Track event subscription */ trackEventSubscribed(pluginId: string, eventType: string): void; /** * Track event handling error */ trackEventHandlingError(pluginId: string, eventType: string, error: any): void; /** * Get metrics for a specific plugin */ getPluginMetrics(pluginId: string): PluginUsageMetrics | undefined; /** * Get metrics for all plugins */ getAllMetrics(): PluginUsageMetrics[]; /** * Get system analytics summary */ getSystemAnalytics(): SystemAnalytics; /** * Export analytics data */ exportData(): { metrics: PluginUsageMetrics[]; buffer: Array<{ timestamp: Date; type: string; data: any; }>; systemAnalytics: SystemAnalytics; }; /** * Clear all metrics */ clearMetrics(): void; /** * Flush metrics buffer */ flush(): Promise; /** * Cleanup resources */ cleanup(): Promise; private createInitialMetrics; private getOrCreateMetrics; private addToBuffer; private trackActivationPerformance; private updateCommandPerformance; private setupPeriodicFlush; } //# sourceMappingURL=analytics-tracker.d.ts.map