import { EventEmitter } from '../utils/EventEmitter'; interface TimingData { start: number; end: number; duration: number; } interface MetricData { count: number; total: number; min: number; max: number; average: number; } export declare class Performance extends EventEmitter { private timings; private metrics; private logger; constructor(); private getTimestamp; startTiming(label: string): void; endTiming(label: string): number; recordMetric(name: string, value: number): void; trackMemoryUsage(interval?: number): () => void; getTimings(label: string): TimingData[]; getMetric(name: string): MetricData | undefined; getAllMetrics(): Map; clearTimings(): void; clearMetrics(): void; generateReport(): string; measureAsync(label: string, fn: () => Promise): Promise; measure(label: string, fn: () => T): T; startProfiling(label: string): void; endProfiling(label: string): void; measureOperationTime(label: string, fn: () => T): T; } export declare const performance: Performance; export declare function Measure(label?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; export declare function MeasureAsync(label?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; export {};