/**
 * Types for Vision & Market Research Engine
 *
 * This module defines the core types for analyzing product vision,
 * detecting market categories, identifying competitors, and calculating
 * opportunity scores.
 */
import { z } from 'zod';
/**
 * Zod schema for VisionInsights validation
 */
export const VisionInsightsSchema = z.object({
    keywords: z.array(z.string()).min(3).max(15),
    market: z.enum([
        'productivity-saas',
        'healthcare',
        'fintech',
        'e-commerce',
        'education',
        'gaming',
        'social-network',
        'enterprise-b2b',
        'consumer-b2c',
        'marketplace',
        'iot',
        'blockchain',
        'ai-ml',
        'unknown'
    ]),
    competitors: z.array(z.object({
        name: z.string(),
        url: z.string().url().optional(),
        strengths: z.array(z.string()),
        weaknesses: z.array(z.string())
    })).min(0).max(10),
    opportunityScore: z.number().min(1).max(10),
    viralPotential: z.boolean(),
    followUpQuestions: z.array(z.object({
        question: z.string(),
        type: z.enum(['open', 'multiple-choice', 'scale']),
        options: z.array(z.string()).optional(),
        rationale: z.string()
    })),
    confidence: z.number().min(0).max(1).optional(),
    rawVision: z.string()
});
/**
 * Zod schema for Competitor validation
 */
export const CompetitorSchema = z.object({
    name: z.string(),
    url: z.string().url().optional(),
    strengths: z.array(z.string()),
    weaknesses: z.array(z.string())
});
/**
 * Zod schema for Question validation
 */
export const QuestionSchema = z.object({
    question: z.string(),
    type: z.enum(['open', 'multiple-choice', 'scale']),
    options: z.array(z.string()).optional(),
    rationale: z.string()
});
//# sourceMappingURL=types.js.map