/** * Event Tracking Factory * * Factory functions for tracking event emitter operations throughout the API system. * Provides comprehensive tracking for pubsub operations, event manager changes, * and config override impacts on the event system. */ import type { UnifiedDebugger } from '../UnifiedDebugger'; import type { EventTrackingMetadata, EventOperation, EventTrackingSummary, HeaderEventAnalysis, NetworkEventAnalysis, ConfigEventAnalysis, FactoryEventAnalysis, PubSubEventAnalysis, DEBUGGER_CONFIG_SOURCES } from '@plyaz/types/api'; /** * Create event tracking metadata for pubsub operations * Uses namespace constants for consistent event naming */ export declare function createPubSubEventTracking(operation: EventOperation, event: string, metadata?: Partial): EventTrackingMetadata; /** * Create event tracking metadata for event manager operations */ export declare function createEventManagerTracking(operation: EventOperation, module: string, metadata?: Partial): EventTrackingMetadata; /** * Create event tracking metadata for client event manager operations */ export declare function createClientEventManagerTracking(operation: EventOperation, strategy: string, metadata?: Partial): EventTrackingMetadata; /** * Create event tracking metadata for config updates */ export declare function createConfigUpdateTracking(operation: EventOperation, configSource: (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES], impactedEvents: string[], metadata?: Partial): EventTrackingMetadata; /** * Create event tracking metadata for factory lifecycle operations */ export declare function createFactoryLifecycleTracking(operation: EventOperation, factoryType: string, metadata?: Partial): EventTrackingMetadata; /** * Event tracking functions that can be used by the UnifiedDebugger */ export declare class EventTrackingFactory { private debugerInstance; private trackingData; constructor(debugerInstance: UnifiedDebugger); /** * Track an event operation */ trackEventOperation(metadata: EventTrackingMetadata): void; /** * Track pubsub operation */ trackPubSubOperation(operation: EventOperation, event: string, metadata?: Partial): void; /** * Track event manager operation */ trackEventManagerOperation(operation: EventOperation, module: string, metadata?: Partial): void; /** * Track client event manager operation */ trackClientEventManagerOperation(operation: EventOperation, strategy: string, metadata?: Partial): void; /** * Track config update impact on events */ trackConfigUpdateImpact(operation: EventOperation, configSource: (typeof DEBUGGER_CONFIG_SOURCES)[keyof typeof DEBUGGER_CONFIG_SOURCES], impactedEvents: string[], metadata?: Partial): void; /** * Track factory lifecycle */ trackFactoryLifecycle(operation: EventOperation, factoryType: string, metadata?: Partial): void; /** * Get event tracking summary */ getEventTrackingSummary(): EventTrackingSummary; /** * Clear tracking data */ clearTrackingData(): void; /** * Get raw tracking data */ getTrackingData(): EventTrackingMetadata[]; /** * Analyze Header Events * Provides insights into header-related events and patterns */ analyzeHeaderEvents(): HeaderEventAnalysis; /** * Analyze Network Events * Provides insights into network-related events and quality changes */ analyzeNetworkEvents(): NetworkEventAnalysis; /** * Analyze Config Events * Provides insights into configuration changes and conflicts */ analyzeConfigEvents(): ConfigEventAnalysis; /** * Analyze Factory Events * Provides insights into factory lifecycle and registration patterns */ analyzeFactoryEvents(): FactoryEventAnalysis; /** * Analyze PubSub Events * Provides insights into event emitter operations and listener patterns */ analyzePubSubEvents(): PubSubEventAnalysis; /** * Analyze all available events from tracked data * Returns real event data instead of hardcoded mocks */ analyzeAvailableEvents(): Array<{ sourceType: 'createApiClient' | 'config' | 'updateConfig' | 'factory' | 'pubsub' | 'manual' | 'eventManager' | 'clientEventManager'; events: Array<{ name: string; category: string; scope: string; initialized: boolean; usage: 'active' | 'passive' | 'never-used'; lastEmitted?: number; emitCount?: number; }>; initializationSource: string; recommendedEvents: string[]; }>; /** * Helper to get category from event name */ private getCategoryFromEvent; /** * Get recommended events based on scope */ private getRecommendedEvents; } //# sourceMappingURL=eventTracking.d.ts.map