import { EventEmitter } from 'events';
export interface ResourceMonitorConfig {
    enabled: boolean;
    samplingIntervalMs: number;
    historySize: number;
    memoryWarningThresholdMB: number;
    memoryCriticalThresholdMB: number;
    cpuWarningThresholdPercent: number;
    cpuCriticalThresholdPercent: number;
    heapUsageWarningPercent: number;
    heapUsageCriticalPercent: number;
    eventLoopWarningDelayMs: number;
    eventLoopCriticalDelayMs: number;
    enableGCMonitoring: boolean;
    gcWarningFrequency: number;
    disableInCI: boolean;
}
export interface ResourceSnapshot {
    timestamp: number;
    rssMemoryMB: number;
    heapUsedMB: number;
    heapTotalMB: number;
    heapUsagePercent: number;
    externalMemoryMB: number;
    arrayBuffersMB: number;
    cpuUsagePercent: number;
    eventLoopDelayMs: number;
    uptimeSeconds: number;
    gcCount?: number;
    gcDurationMs?: number;
    gcType?: string;
    pid: number;
    ppid: number;
    platform: string;
    nodeVersion: string;
}
export interface ResourceTrend {
    metric: keyof ResourceSnapshot;
    trend: 'stable' | 'increasing' | 'decreasing' | 'volatile';
    changePercent: number;
    samples: number;
}
export interface ResourceAlert {
    level: 'warning' | 'critical';
    metric: string;
    current: number;
    threshold: number;
    message: string;
    timestamp: number;
    snapshot: ResourceSnapshot;
}
/**
 * Advanced resource monitoring with trending analysis and alerting
 */
export declare class ResourceMonitor extends EventEmitter {
    private config;
    private snapshots;
    private monitoringTimer?;
    private eventLoopTimer?;
    private lastEventLoopTime;
    private eventLoopDelays;
    private gcEvents;
    private isMonitoring;
    constructor(config?: Partial<ResourceMonitorConfig>);
    /**
     * Start resource monitoring
     */
    start(): void;
    /**
     * Stop resource monitoring
     */
    stop(): void;
    /**
     * Get current resource snapshot
     */
    getCurrentSnapshot(): ResourceSnapshot | null;
    /**
     * Get resource history
     */
    getHistory(maxSamples?: number): ResourceSnapshot[];
    /**
     * Get resource trends analysis
     */
    getResourceTrends(): ResourceTrend[];
    /**
     * Force garbage collection if available
     */
    forceGC(): boolean;
    /**
     * Get memory pressure level
     */
    getMemoryPressure(): 'normal' | 'warning' | 'critical';
    /**
     * Take a resource snapshot
     */
    private takeSnapshot;
    /**
     * Calculate CPU usage approximation
     */
    private calculateCPUUsage;
    /**
     * Start event loop delay monitoring
     */
    private startEventLoopMonitoring;
    /**
     * Setup garbage collection monitoring if available
     */
    private setupGCMonitoring;
    /**
     * Get recent GC activity summary
     */
    private getRecentGCActivity;
    /**
     * Log GC summary on exit
     */
    private logGCSummary;
    /**
     * Check for resource alerts
     */
    private checkForAlerts;
    /**
     * Calculate trend from a series of values
     */
    private calculateTrend;
    /**
     * Analyze resource trends and emit trend updates
     */
    private analyzeResourceTrends;
    /**
     * Clean up resources
     */
    destroy(): void;
}
//# sourceMappingURL=resource-monitor.d.ts.map