UNPKG

qnce-engine

Version:

Core QNCE (Quantum Narrative Convergence Engine) - Framework agnostic narrative engine with performance optimization

123 lines 4.3 kB
export interface PerfEvent { id: string; type: 'flow-start' | 'flow-complete' | 'cache-hit' | 'cache-miss' | 'hot-reload-start' | 'hot-reload-end' | 'state-transition' | 'custom'; timestamp: number; duration?: number; metadata: Record<string, unknown>; category: 'engine' | 'cache' | 'hot-reload' | 'user' | 'system'; } export interface PerfSummary { totalEvents: number; eventsByType: Record<string, number>; avgDurations: Record<string, number>; maxDurations: Record<string, number>; minDurations: Record<string, number>; cacheHitRate: number; hotReloadPerformance: { avgTime: number; maxTime: number; totalReloads: number; }; timeRange: { start: number; end: number; duration: number; }; } export interface PerfReporterConfig { batchSize: number; flushInterval: number; enableBackgroundFlush: boolean; maxEventHistory: number; enableConsoleOutput: boolean; } /** * PerfReporter - Batched performance event collection and analysis * Designed to work off main thread for minimal performance impact */ export declare class PerfReporter { private events; private config; private flushTimer; private startTime; private activeSpans; constructor(config?: Partial<PerfReporterConfig>); /** * Record a performance event */ record(type: PerfEvent['type'], metadata?: Record<string, unknown>, category?: PerfEvent['category']): string; /** * Start a performance span (for measuring duration) */ startSpan(type: PerfEvent['type'], metadata?: Record<string, unknown>, category?: PerfEvent['category']): string; /** * End a performance span and record the complete event */ endSpan(spanId: string, additionalMetadata?: Record<string, unknown>): void; /** * Record flow start event (S2-T4 requirement) */ recordFlowStart(nodeId: string, metadata?: Record<string, unknown>): string; /** * Record flow completion event (S2-T4 requirement) */ recordFlowComplete(spanId: string, nextNodeId: string, metadata?: Record<string, unknown>): void; /** * Record cache hit event (S2-T4 requirement) */ recordCacheHit(cacheKey: string, metadata?: Record<string, unknown>): string; /** * Record cache miss event (S2-T4 requirement) */ recordCacheMiss(cacheKey: string, metadata?: Record<string, unknown>): string; /** * Record hot-reload start event (S2-T4 requirement) */ recordHotReloadStart(deltaSize: number, metadata?: Record<string, unknown>): string; /** * Record hot-reload completion event (S2-T4 requirement) */ recordHotReloadEnd(spanId: string, success: boolean, metadata?: Record<string, unknown>): void; /** * Generate performance summary for CLI dashboard */ summary(): PerfSummary; /** * Get raw events for detailed analysis */ getEvents(): PerfEvent[]; /** * Clear event history */ clear(): void; /** * Flush events to background processing */ flush(): void; /** * Start automatic flush timer */ private startFlushTimer; /** * Stop automatic flush timer */ stopFlushTimer(): void; /** * Generate unique event ID */ private generateEventId; } export declare function getPerfReporter(config?: Partial<PerfReporterConfig>): PerfReporter; export declare function shutdownPerfReporter(): void; export declare const perf: { flowStart: (nodeId: string, metadata?: Record<string, unknown>) => string; flowComplete: (spanId: string, nextNodeId: string, metadata?: Record<string, unknown>) => void; cacheHit: (cacheKey: string, metadata?: Record<string, unknown>) => string; cacheMiss: (cacheKey: string, metadata?: Record<string, unknown>) => string; hotReloadStart: (deltaSize: number, metadata?: Record<string, unknown>) => string; hotReloadEnd: (spanId: string, success: boolean, metadata?: Record<string, unknown>) => void; record: (type: PerfEvent["type"], metadata?: Record<string, unknown>, category?: PerfEvent["category"]) => string; summary: () => PerfSummary; clear: () => void; }; //# sourceMappingURL=PerfReporter.d.ts.map