export interface OperationTiming { operation: string; startTime: bigint; endTime?: bigint; duration?: number; file?: string; fileSize?: number; metadata?: Record; } export interface FileTiming { file: string; fileSize: number; operations: OperationTiming[]; totalDuration: number; queueWaitTime?: number; readTime?: number; parseTime?: number; writeTime?: number; error?: string; } export declare class PerformanceLogger { private fileTimings; private activeOperations; private startTime; private logFile?; constructor(logFile?: string); /** * Start timing an operation */ startOperation(operation: string, file?: string, metadata?: Record): string; /** * End timing an operation */ endOperation(operationId: string, fileSize?: number): void; /** * Record file size for a file */ setFileSize(file: string, size: number): void; /** * Record queue wait time (time before processing started) */ setQueueWaitTime(file: string, waitTime: number): void; /** * Record read operation timing */ recordRead(file: string, duration: number): void; /** * Record parse operation timing */ recordParse(file: string, duration: number): void; /** * Record write operation timing */ recordWrite(file: string, duration: number): void; /** * Mark a file as complete */ completeFile(file: string, success: boolean, error?: string): void; /** * Get timing summary for a file */ getFileTiming(file: string): FileTiming | undefined; /** * Get all file timings */ getAllTimings(): FileTiming[]; /** * Get summary statistics */ getSummary(): { totalFiles: number; successful: number; failed: number; totalDuration: number; averageDuration: number; slowestFiles: Array<{ file: string; duration: number; }>; fastestFiles: Array<{ file: string; duration: number; }>; bottlenecks: { avgReadTime: number; avgParseTime: number; avgWriteTime: number; }; }; /** * Export timings to JSON */ exportToJSON(): string; /** * Format milliseconds to human-readable string * Examples: "123ms", "1.23s", "1m 5s" */ private formatMilliseconds; /** * Format duration in friendly format (e.g., "2m 5s") */ private formatDuration; /** * Print summary to console and optionally write to file */ printSummary(startTime?: bigint): void; /** * Write performance summary to file */ private writeSummaryToFile; private getOrCreateFileTiming; private addOperationToFile; } export declare function getPerformanceLogger(): PerformanceLogger; export declare function setPerformanceLogger(logger: PerformanceLogger): void; //# sourceMappingURL=performanceLogger.d.ts.map