/**
 * Enhanced System Monitor Service
 * Provides comprehensive system health and performance metrics
 */
export interface CPUInfo {
    usage: number;
    temperature?: number;
    cores: number;
    model: string;
    speed: number;
    loadAverage: number[];
}
export interface MemoryInfo {
    total: number;
    used: number;
    free: number;
    percentage: number;
    available?: number;
    active?: number;
    inactive?: number;
    buffers?: number;
    cached?: number;
    swap?: {
        total: number;
        used: number;
        free: number;
        percentage?: number;
    };
    process?: {
        rss: number;
        heapTotal: number;
        heapUsed: number;
        external: number;
        arrayBuffers: number;
    };
    breakdown?: {
        apps: number;
        pageCache: number;
        buffers: number;
        slab: number;
        kernelStack: number;
        pageTables: number;
        vmallocUsed: number;
    };
}
export interface DiskInfo {
    total: number;
    used: number;
    free: number;
    percentage: number;
    io?: {
        readBytes: number;
        writeBytes: number;
        readOps: number;
        writeOps: number;
    };
}
export interface NetworkInterfaceInfo {
    name: string;
    addresses: string[];
    mac: string;
    speed?: number;
    stats?: {
        rxBytes: number;
        txBytes: number;
        rxPackets: number;
        txPackets: number;
        rxErrors: number;
        txErrors: number;
    };
}
export interface SystemInfo {
    platform: string;
    arch: string;
    version: string;
    kernel: string;
    hostname: string;
    uptime: number;
    bootTime: Date;
}
export interface ProcessInfo {
    pid: number;
    name: string;
    cpu: number;
    memory: number;
    uptime: number;
}
export interface SystemHealth {
    cpu: CPUInfo;
    memory: MemoryInfo;
    disk: DiskInfo;
    system: SystemInfo;
    network: {
        interfaces: NetworkInterfaceInfo[];
        connections: number;
    };
    processes?: ProcessInfo[];
    timestamp: Date;
}
declare class SystemMonitor {
    private cpuUsageHistory;
    private lastCPUInfo;
    private diskIOCache;
    /**
     * Get comprehensive system health metrics
     */
    getSystemHealth(): Promise<SystemHealth>;
    /**
     * Get CPU information including temperature
     */
    getCPUInfo(): Promise<CPUInfo>;
    /**
     * Calculate CPU usage percentage
     */
    private calculateCPUUsage;
    /**
     * Get CPU temperature (platform-specific)
     */
    private getCPUTemperature;
    /**
     * Get memory information including swap and detailed breakdown
     */
    getMemoryInfo(): Promise<MemoryInfo>;
    /**
     * Get detailed memory breakdown (Linux only)
     */
    private getDetailedMemoryInfo;
    /**
     * Get swap memory information
     */
    private getSwapInfo;
    /**
     * Get disk information including I/O stats
     */
    getDiskInfo(): Promise<DiskInfo>;
    /**
     * Get disk I/O statistics
     */
    private getDiskIOStats;
    /**
     * Get system information
     */
    getSystemInfo(): Promise<SystemInfo>;
    /**
     * Get network information
     */
    getNetworkInfo(): Promise<{
        interfaces: NetworkInterfaceInfo[];
        connections: number;
    }>;
    /**
     * Get detailed network interface information
     */
    private getNetworkInterfaces;
    /**
     * Get network interface statistics
     */
    private getInterfaceStats;
    /**
     * Get detailed network statistics with bandwidth usage
     */
    getNetworkStatistics(): Promise<{
        interfaces: NetworkInterfaceInfo[];
        totalBytesReceived: number;
        totalBytesSent: number;
        totalPacketsReceived: number;
        totalPacketsSent: number;
        connections: number;
        bandwidth?: {
            download: number;
            upload: number;
        };
    }>;
    /**
     * Calculate bandwidth based on byte counters
     */
    private lastNetworkMeasurement?;
    private calculateBandwidth;
    /**
     * Get active network connections by state
     */
    getNetworkConnectionsByState(): Promise<{
        established: number;
        listening: number;
        timeWait: number;
        closeWait: number;
        total: number;
    }>;
    /**
     * Get number of network connections
     */
    private getNetworkConnections;
    /**
     * Get top processes by CPU or memory usage
     */
    getTopProcesses(sortBy?: "cpu" | "memory", limit?: number): Promise<ProcessInfo[]>;
    /**
     * Get CPU usage history
     */
    getCPUHistory(): number[];
    /**
     * Monitor system health continuously
     */
    startMonitoring(interval?: number, callback?: (health: SystemHealth) => void): Promise<NodeJS.Timeout>;
}
export declare function getSystemMonitor(): SystemMonitor;
export default SystemMonitor;
//# sourceMappingURL=systemMonitor.d.ts.map