import type { Context } from '../context.js'; interface PerformanceMetrics { method: string; path: string; responseTime: number; statusCode: number; timestamp: number; memoryUsage?: { rss: number; heapTotal: number; heapUsed: number; external: number; }; requestSize?: number; responseSize?: number; } interface PerformanceMonitorOptions { enabled?: boolean; endpoint?: string; slowThreshold?: number; maxEntries?: number; includeMemory?: boolean; includeSizes?: boolean; logSlowRequests?: boolean; } /** * Performance monitor for development - tracks API response times and bottlenecks */ export declare class PerformanceMonitor { private metrics; options: Required; constructor(options?: PerformanceMonitorOptions); /** * Record a performance metric */ recordMetric(metric: PerformanceMetrics): void; /** * Get all metrics */ getMetrics(): PerformanceMetrics[]; /** * Get performance statistics */ getStats(): { totalRequests: number; averageResponseTime: number; slowestRequest: number; fastestRequest: number; requestsPerSecond: number; errorRate: number; slowRequests: number; }; /** * Get metrics grouped by endpoint */ getMetricsByEndpoint(): Record; /** * Clear all metrics */ clearMetrics(): void; /** * Generate HTML performance dashboard */ generateHTML(): string; /** * Generate ASCII performance report */ generateASCII(): string; } /** * Performance monitoring middleware */ export declare function performanceMonitor(options?: PerformanceMonitorOptions): (ctx: Context, next: () => Promise) => Promise; /** * Get the global performance monitor instance */ export declare function getPerformanceMonitor(): PerformanceMonitor | null; /** * Print performance report to console */ export declare function printPerformanceReport(): void; export {}; //# sourceMappingURL=performanceMonitor.d.ts.map