/**
 * Serverless Cost Savings Calculator
 *
 * Calculates potential monthly cost savings by using serverless
 * alternatives instead of traditional infrastructure.
 *
 * **Savings Categories**:
 * - Auth → AWS Cognito/Auth0: $185/month
 * - File uploads → S3 + Lambda: $480/month
 * - Image processing → Lambda/Cloudinary: $490/month
 * - Email → SendGrid/SES: $85/month
 * - Background jobs → Lambda: $280/month
 * - **Total Potential: $1,520/month**
 */
/**
 * Serverless alternative for a specific use case
 */
export interface ServerlessOption {
    /** Use case name (e.g., "Authentication", "File Uploads") */
    useCase: string;
    /** Traditional infrastructure cost per month */
    traditionalCost: number;
    /** Serverless solution cost per month */
    serverlessCost: number;
    /** Monthly savings (traditionalCost - serverlessCost) */
    savings: number;
    /** Recommended serverless service */
    service: string;
    /** Alternative serverless services */
    alternatives?: string[];
    /** Trade-offs to consider */
    tradeoffs: string[];
    /** When to use serverless for this use case */
    recommendedWhen: string[];
    /** When NOT to use serverless for this use case */
    notRecommendedWhen: string[];
}
/**
 * Complete serverless savings analysis
 */
export interface ServerlessSavingsAnalysis {
    /** Total potential monthly savings */
    totalSavings: number;
    /** Breakdown by use case */
    breakdown: ServerlessOption[];
    /** Overall recommendation (serverless vs traditional) */
    recommendation: 'serverless' | 'traditional' | 'hybrid';
    /** Rationale for recommendation */
    rationale: string;
    /** Confidence level (0-1) */
    confidence: number;
}
/**
 * Serverless Savings Calculator
 *
 * Analyzes which services can benefit from serverless and calculates savings.
 */
export declare class ServerlessSavingsCalculator {
    /**
     * Calculate potential serverless savings for a project
     *
     * @param useCases - Array of use cases detected in project (e.g., ["auth", "file-uploads"])
     * @returns Complete savings analysis with recommendations
     *
     * @example
     * ```typescript
     * const calculator = new ServerlessSavingsCalculator();
     * const analysis = calculator.calculateSavings(['auth', 'file-uploads', 'email']);
     * console.log(analysis.totalSavings); // 750
     * console.log(analysis.recommendation); // 'serverless'
     * ```
     */
    calculateSavings(useCases: string[]): ServerlessSavingsAnalysis;
    /**
     * Get all available serverless options
     *
     * @returns Complete database of serverless savings options
     */
    getAllOptions(): ServerlessOption[];
    /**
     * Get serverless option by use case
     *
     * @param useCase - Use case name
     * @returns Serverless option or undefined if not found
     */
    getOption(useCase: string): ServerlessOption | undefined;
    /**
     * Calculate savings for specific use case
     *
     * @param useCase - Use case name
     * @returns Savings amount or 0 if not found
     */
    getSavings(useCase: string): number;
    /**
     * Normalize use case name for matching
     *
     * @param useCase - Raw use case string
     * @returns Normalized use case
     *
     * @example
     * normalizeUseCase("file upload") → "file-uploads"
     * normalizeUseCase("AUTH") → "authentication"
     */
    private normalizeUseCase;
    /**
     * Check if normalized use case matches database use case
     *
     * @param normalized - Normalized use case from user input
     * @param dbUseCase - Use case from database
     * @returns True if match
     */
    private matchesUseCase;
    /**
     * Determine serverless recommendation based on savings
     *
     * @param options - Applicable serverless options
     * @param totalSavings - Total monthly savings
     * @returns Recommendation with rationale
     */
    private determineRecommendation;
    /**
     * Format savings analysis as markdown report
     *
     * @param analysis - Savings analysis result
     * @returns Markdown-formatted report
     */
    formatReport(analysis: ServerlessSavingsAnalysis): string;
}
/**
 * Quick helper to calculate total potential serverless savings
 *
 * @param useCases - Array of use cases
 * @returns Total monthly savings
 */
export declare function calculateTotalSavings(useCases: string[]): number;
//# sourceMappingURL=ServerlessSavingsCalculator.d.ts.map