export interface InitializationPhase { name: string; startTime: number; endTime?: number; duration?: number; status: 'pending' | 'completed' | 'failed'; error?: Error; metadata?: Record; } export interface ServiceInitialization { serviceName: string; startTime: number; endTime?: number; duration?: number; status: 'pending' | 'completed' | 'failed'; phases: InitializationPhase[]; dependencies: string[]; error?: Error; metadata?: Record; } export interface InitializationStats { totalServices: number; completedServices: number; failedServices: number; pendingServices: number; averageInitTime: number; slowestService?: { name: string; duration: number; }; fastestService?: { name: string; duration: number; }; totalInitTime: number; criticalPath: string[]; } export interface MonitorConfig { slowInitThreshold: number; criticalSlowThreshold: number; enableDetailedLogging: boolean; trackDependencies: boolean; maxTrackedServices: number; } export declare class InitializationMonitor { private static instance; private services; private globalStartTime?; private globalEndTime?; private readonly config; private constructor(); static getInstance(config?: Partial): InitializationMonitor; startGlobalInitialization(): void; endGlobalInitialization(): void; startServiceInitialization(serviceName: string, dependencies?: string[], metadata?: Record): void; endServiceInitialization(serviceName: string, error?: Error): void; startPhase(serviceName: string, phaseName: string, metadata?: Record): void; endPhase(serviceName: string, phaseName: string, error?: Error): void; private checkSlowInitialization; getStatistics(): InitializationStats; private calculateCriticalPath; private findLongestChain; private logInitializationSummary; getServiceDetails(serviceName: string): ServiceInitialization | undefined; getAllServices(): ServiceInitialization[]; clear(): void; static reset(): void; static createInstance(config?: Partial): InitializationMonitor; } //# sourceMappingURL=initialization-monitor.d.ts.map