/**
 * Types for Architecture Decision Engine
 */
import { z } from 'zod';
/**
 * Zod schemas
 */
export const CostEstimateSchema = z.object({
    at1K: z.string(),
    at10K: z.string(),
    at100K: z.string(),
    at1M: z.string()
});
export const CloudCreditSchema = z.object({
    provider: z.string(),
    amount: z.string(),
    duration: z.string(),
    requirements: z.string().optional(),
    url: z.string().url().optional()
});
export const ProjectDefinitionSchema = z.object({
    name: z.string(),
    description: z.string(),
    stack: z.array(z.string())
});
export const ArchitectureRecommendationSchema = z.object({
    architecture: z.enum([
        'serverless',
        'traditional-monolith',
        'microservices',
        'modular-monolith',
        'jamstack',
        'hybrid'
    ]),
    infrastructure: z.array(z.string()),
    rationale: z.string(),
    costEstimate: CostEstimateSchema,
    cloudCredits: z.array(CloudCreditSchema),
    projects: z.array(ProjectDefinitionSchema),
    methodology: z.enum(['agile', 'waterfall']),
    alternatives: z.array(z.object({
        architecture: z.enum([
            'serverless',
            'traditional-monolith',
            'microservices',
            'modular-monolith',
            'jamstack',
            'hybrid'
        ]),
        pros: z.array(z.string()),
        cons: z.array(z.string())
    })).optional()
});
//# sourceMappingURL=types.js.map