/**
 * Right-Sizing Tool
 * AI-powered Azure resource optimization recommendations
 */
import { AuthContext } from '../auth/azure-auth.js';
import { Tool, ToolConfig } from './registry.js';
export interface RightSizingArgs {
    subscription_id: string;
    resource_group?: string;
    resource_types?: ('VirtualMachines' | 'SqlDatabases' | 'AppServicePlans' | 'Storage')[];
    utilization_threshold?: number;
    analysis_days?: number;
}
export interface RightSizingResult {
    success: boolean;
    data: {
        summary: {
            total_resources_analyzed: number;
            optimization_opportunities: number;
            potential_monthly_savings: number;
            total_savings_percentage: number;
        };
        vm_recommendations: Array<{
            resource_id: string;
            resource_name: string;
            current_sku: string;
            recommended_sku: string;
            current_cost: number;
            projected_cost: number;
            monthly_savings: number;
            savings_percentage: number;
            utilization_metrics: {
                cpu_average: number;
                memory_average: number;
                network_average: number;
            };
            confidence_level: 'High' | 'Medium' | 'Low';
            implementation_complexity: 'Low' | 'Medium' | 'High';
            risk_assessment: string;
        }>;
        database_recommendations: Array<{
            resource_id: string;
            resource_name: string;
            current_tier: string;
            recommended_tier: string;
            current_cost: number;
            projected_cost: number;
            monthly_savings: number;
            performance_metrics: {
                dtu_average: number;
                storage_usage: number;
                connection_count: number;
            };
            recommendation_reason: string;
        }>;
        storage_recommendations: Array<{
            resource_id: string;
            resource_name: string;
            current_tier: string;
            recommended_tier: string;
            monthly_savings: number;
            access_patterns: {
                hot_access_percentage: number;
                cool_access_percentage: number;
                archive_eligible_percentage: number;
            };
        }>;
    };
    metadata: {
        execution_time?: number;
        api_calls: number;
        analysis_period: string;
        confidence_threshold: number;
    };
}
export declare class RightSizingTool implements Tool {
    name: string;
    description: string;
    inputSchema: {
        type: string;
        properties: {
            subscription_id: {
                type: string;
                description: string;
            };
            resource_group: {
                type: string;
                description: string;
            };
            resource_types: {
                type: string;
                items: {
                    type: string;
                    enum: string[];
                };
                description: string;
            };
            utilization_threshold: {
                type: string;
                description: string;
                default: number;
                minimum: number;
                maximum: number;
            };
            analysis_days: {
                type: string;
                description: string;
                default: number;
                minimum: number;
                maximum: number;
            };
        };
        required: string[];
    };
    private logger;
    constructor(_config: ToolConfig);
    execute(args: RightSizingArgs, _context: AuthContext): Promise<RightSizingResult>;
    private analyzeVirtualMachines;
    private getVMMetrics;
    private processMetrics;
    private analyzeVMUtilization;
    private getRecommendedVMSku;
    private getVMCost;
    private getConfidenceLevel;
    private getImplementationComplexity;
    private getSkuTier;
    private getRiskAssessment;
    private analyzeSqlDatabases;
    private analyzeStorageAccounts;
    private calculateSummary;
}
//# sourceMappingURL=right-sizing.d.ts.map