/**
* Cost Optimization Manager - Advanced resource allocation and cost strategies
* Implements intelligent cost optimization with usage pattern analysis
*/
///
import { EventEmitter } from "events";
export interface ResourceCost {
id: string;
type: "compute" | "storage" | "network" | "gpu" | "memory";
provider: string;
region: string;
costPerUnit: number;
unit: "hour" | "gb" | "gb-month" | "request" | "gb-transfer";
tier: "on-demand" | "reserved" | "spot" | "preemptible";
minimumCommitment?: number;
discountRate?: number;
}
export interface ResourceUsage {
resourceId: string;
timestamp: number;
usage: number;
cost: number;
efficiency: number;
utilization: number;
metadata: {
userId?: string;
service: string;
task: string;
priority: "low" | "medium" | "high" | "critical";
};
}
export interface CostBudget {
id: string;
name: string;
totalBudget: number;
period: "daily" | "weekly" | "monthly" | "yearly";
allocated: number;
spent: number;
remaining: number;
alerts: {
warning: number;
critical: number;
};
categories: Map;
}
export interface OptimizationRecommendation {
type: "scale-down" | "scale-up" | "tier-change" | "region-change" | "schedule-change";
resourceId: string;
currentCost: number;
projectedCost: number;
savings: number;
confidence: number;
impact: "low" | "medium" | "high";
implementation: {
effort: "easy" | "moderate" | "complex";
risk: "low" | "medium" | "high";
timeline: string;
};
description: string;
}
export interface CostForecast {
period: string;
projectedCost: number;
confidence: number;
factors: {
trend: number;
seasonality: number;
growth: number;
efficiency: number;
};
breakdown: Map;
}
export declare class CostOptimizationManager extends EventEmitter {
private resources;
private usageHistory;
private budgets;
private optimizationRules;
private costAnalyzer;
private forecastEngine;
private alertManager;
private schedulingOptimizer;
constructor();
/**
* Register resource cost configuration
*/
registerResource(resource: ResourceCost): void;
/**
* Record resource usage for cost tracking
*/
recordUsage(usage: ResourceUsage): void;
/**
* Create cost budget with allocation strategy
*/
createBudget(budget: CostBudget): void;
/**
* Analyze costs and generate optimization recommendations
*/
generateOptimizationRecommendations(): Promise;
/**
* Implement optimization recommendation
*/
implementRecommendation(recommendationId: string): Promise<{
success: boolean;
actualSavings?: number;
error?: string;
}>;
/**
* Generate cost forecast based on usage patterns
*/
generateCostForecast(period: "week" | "month" | "quarter" | "year"): Promise;
/**
* Optimize resource allocation based on cost and performance
*/
optimizeResourceAllocation(constraints: {
maxCost: number;
minPerformance: number;
preferredRegions?: string[];
allowSpot?: boolean;
}): Promise<{
allocation: Map;
totalCost: number;
estimatedPerformance: number;
savings: number;
}>;
/**
* Get comprehensive cost analytics
*/
getCostAnalytics(timeRange: {
start: number;
end: number;
}): {
totalCost: number;
costByCategory: Map;
costByRegion: Map;
utilizationMetrics: Map;
trends: {
daily: number[];
weekly: number[];
growth: number;
};
topCostDrivers: Array<{
resourceId: string;
cost: number;
percentage: number;
}>;
};
/**
* Set up automated cost optimization
*/
enableAutomatedOptimization(config: {
enabled: boolean;
maxSavingsThreshold: number;
maxRiskLevel: "low" | "medium" | "high";
approvalRequired: boolean;
scheduleOptimization: string;
}): void;
/**
* Monitor budget alerts and cost anomalies
*/
startCostMonitoring(): void;
private initializeManager;
private registerCommonResources;
private createDefaultBudget;
private setupOptimizationRules;
private updateBudgetTracking;
private checkCostAnomalies;
private createScaleDownRecommendation;
private createTierChangeRecommendation;
private createRegionChangeRecommendation;
private getCurrentAllocation;
private calculateOptimalAllocation;
private groupCostsByCategory;
private groupCostsByRegion;
private calculateUtilizationMetrics;
private calculateCostTrends;
private identifyTopCostDrivers;
private checkBudgetAlerts;
private detectCostAnomalies;
private getHistoricalHourlyCosts;
}
interface OptimizationRule {
name: string;
condition: (usage: ResourceUsage[]) => boolean;
action: string;
savings: number;
}
declare class CostAnalyzer {
analyzeUsagePatterns(usage: ResourceUsage[]): Promise<{
underutilizedResources: any[];
overProvisionedResources: any[];
regionalOptimizations: any[];
}>;
}
declare class ForecastEngine {
generateForecast(usage: ResourceUsage[], period: string): Promise;
}
declare class AlertManager {
setupBudgetAlerts(budget: CostBudget): void;
}
declare class SchedulingOptimizer {
analyzeOpportunities(usage: ResourceUsage[]): Promise;
}
export { CostAnalyzer, ForecastEngine, AlertManager, SchedulingOptimizer, OptimizationRule, };
//# sourceMappingURL=cost-optimization-manager.d.ts.map