import { EventEmitter } from 'events'; import { RequestProfile, QueryProfile, LogProfile, HttpCallProfile, EventProfile, EventListenerTrace } from '../common/profiler.model'; import type { ProfilerOptions } from '../common/profiler-options.interface'; import type { ProfilerStorage } from '../storage/profiler-storage.interface'; export declare class ProfilerService { private options; private storage; private readonly als; private readonly logger; readonly logEmitter: EventEmitter<[never]>; private readonly eventMap; private readonly eventOrder; constructor(options: ProfilerOptions, storage: ProfilerStorage); isEnabled(): boolean; startRequest(): RequestProfile | null; endRequest(profile: RequestProfile): void; private analyzeRequest; private addTag; addQuery(query: QueryProfile): void; addLog(log: LogProfile): void; addCache(cacheProfile: import('../common/profiler.model').CacheProfile): void; addHttpCall(call: HttpCallProfile): void; getCurrentProfile(): RequestProfile | undefined; getDashboardData(): Promise; getProfileDetail(id: string): Promise; getQueriesList(): Promise; getLogsList(page?: number, pageSize?: number): Promise<{ logs: any[]; currentPage: number; totalPages: number; totalLogs: number; }>; getAllProfilesJson(): Promise; getProfileJson(id: string): Promise; getSummaryStats(): Promise<{ totalRequests: number; avgDuration: number; p95Duration: number; errorRate: number; totalQueries: number; slowQueries: number; nPlusOneCount: number; seqScanCount: number; cacheHitRate: number; totalCacheOps: number; methodDistribution: Record; statusDistribution: Record; topSlowEndpoints: { route: string; method: string; avgDuration: number; callCount: number; }[]; topSlowQueries: { sql: string; duration: number; requestUrl: string; }[]; recentErrors: { id: string; url: string; method: string; statusCode: number; message: string; timestamp: number; }[]; memoryUsage: { rss: number; heapUsed: number; heapTotal: number; } | null; }>; getHttpCallsList(): Promise; getCacheList(): Promise; addEvent(event: EventProfile): void; finalizeEvent(id: string, status: 'success' | 'error', error?: string): void; addListenerTrace(eventId: string | undefined, trace: EventListenerTrace): void; linkChildEvent(parentId: string, childId: string): void; getCurrentRequestId(): string | undefined; getEventsList(): EventProfile[]; getRootEvents(): EventProfile[]; getExceptionsList(): Promise; }