import { OnModuleInit } from '@nestjs/common';
import { EventMetadataExplorer } from './event-metadata-explorer.service';
import { EventDiscoveryService } from './event-discovery.service';
export interface PerformanceMetrics {
    cache: {
        hits: number;
        misses: number;
        hitRate: number;
    };
    discovery: {
        pending: number;
        registered: number;
        retryCount: number;
        processingTime: number;
    };
    memory: {
        heapUsed: number;
        heapTotal: number;
        external: number;
    };
    timing: {
        lastDiscoveryRun: number;
        averageProcessingTime: number;
        totalRuns: number;
    };
}
export declare class PerformanceMonitorService implements OnModuleInit {
    private readonly metadataExplorer;
    private readonly eventDiscoveryService;
    private readonly logger;
    private readonly startTime;
    private processingTimes;
    private lastDiscoveryRun;
    constructor(metadataExplorer: EventMetadataExplorer, eventDiscoveryService: EventDiscoveryService);
    onModuleInit(): Promise<void>;
    /**
     * Get comprehensive performance metrics
     */
    getMetrics(): PerformanceMetrics;
    /**
     * Record processing time for performance tracking
     */
    recordProcessingTime(processingTime: number): void;
    /**
     * Record discovery run completion
     */
    recordDiscoveryRun(): void;
    /**
     * Get performance summary for logging
     */
    getPerformanceSummary(): string;
    /**
     * Start periodic performance reporting
     */
    private startPerformanceReporting;
    /**
     * Check for performance warnings and log them
     */
    private checkPerformanceWarnings;
    /**
     * Reset performance metrics (useful for testing)
     */
    resetMetrics(): void;
    /**
     * Get performance recommendations based on current metrics
     */
    getRecommendations(): string[];
}
