/**
 * Resource Monitor
 * Real-time resource tracking with cost calculation
 * Sealed namespace for immutability
 */
export type ResourceSnapshot = {
    timestamp: Date;
    cpu: {
        usage: number;
        loadAverage: number[];
        cores: number;
    };
    memory: {
        total: number;
        used: number;
        free: number;
        usage: number;
    };
    disk: {
        read: number;
        write: number;
    };
    network: {
        received: number;
        transmitted: number;
    };
    process: {
        pid: number;
        uptime: number;
        memoryUsage: NodeJS.MemoryUsage;
        cpuUsage: NodeJS.CpuUsage;
    };
};
export type WorkerResourceUsage = {
    cpu: number;
    memory: {
        number: number;
        percent: number;
        used: number;
        free: number;
    };
    cost: {
        hourly: number;
        daily: number;
    };
    workerName: string;
    resourceSnapshot: ResourceSnapshot;
    estimatedCost: {
        perHour: number;
        perDay: number;
        perMonth: number;
    };
    efficiency: {
        cpuEfficiency: number;
        memoryEfficiency: number;
        overallScore: number;
    };
};
export type CostCalculationConfig = {
    computeCostPerCoreHour: number;
    memoryCostPerGBHour: number;
    networkCostPerGB: number;
    diskCostPerGB: number;
    spotInstanceDiscount: number;
};
export type ResourceAlert = {
    timestamp: Date;
    workerName: string;
    alertType: 'cpu-high' | 'memory-high' | 'disk-high' | 'cost-high';
    severity: 'warning' | 'critical';
    message: string;
    currentValue: number;
    threshold: number;
    recommendation?: string;
};
export type ResourceTrend = {
    workerName: string;
    metric: 'cpu' | 'memory' | 'disk' | 'network' | 'cost';
    period: 'hour' | 'day' | 'week';
    trend: 'increasing' | 'decreasing' | 'stable';
    changePercentage: number;
    predictions: {
        nextHour: number;
        nextDay: number;
        nextWeek: number;
    };
};
/**
 * Resource Monitor - Sealed namespace
 */
export declare const ResourceMonitor: Readonly<{
    /**
     * Initialize resource monitor
     */
    initialize(config?: Partial<CostCalculationConfig>): void;
    /**
     * Check whether monitoring is running
     */
    isRunning(): boolean;
    /**
     * Start monitoring
     */
    start(intervalSeconds?: number): void;
    /**
     * Stop monitoring
     */
    stop(): void;
    /**
     * Get current resource usage
     */
    getCurrentUsage(workerName: string, useSpotDiscount?: boolean): WorkerResourceUsage;
    /**
     * Get resource history
     */
    getHistory(workerName: string, limit?: number): ReadonlyArray<ResourceSnapshot>;
    /**
     * Get alerts
     */
    getAlerts(workerName: string, limit?: number): ReadonlyArray<ResourceAlert>;
    /**
     * Get trend analysis
     */
    getTrend(workerName: string, metric: ResourceTrend["metric"], period: ResourceTrend["period"]): ResourceTrend | null;
    /**
     * Get all trends
     */
    getAllTrends(workerName: string, period: ResourceTrend["period"]): Record<ResourceTrend["metric"], ResourceTrend | null>;
    /**
     * Update cost configuration
     */
    updateCostConfig(config: Partial<CostCalculationConfig>): void;
    /**
     * Get cost configuration
     */
    getCostConfig(): CostCalculationConfig;
    /**
     * Calculate projected cost
     */
    calculateProjectedCost(cpuUsagePercent: number, memoryGB: number, hoursPerDay: number, useSpotDiscount?: boolean): {
        daily: number;
        monthly: number;
        yearly: number;
    };
    /**
     * Get system information
     */
    getSystemInfo(): {
        platform: string;
        arch: string;
        hostname: string;
        cpus: number;
        totalMemory: number;
        freeMemory: number;
        uptime: number;
    };
    /**
     * Clear history for a worker
     */
    clearHistory(workerName: string): void;
    /**
     * Shutdown
     */
    shutdown(): void;
}>;
//# sourceMappingURL=ResourceMonitor.d.ts.map