

export interface Evidence {
    url: string;
    snippet: string;
}

export interface Product {
    name: string;
    purpose: string;
    evidence: Evidence[];
}

export interface TargetIndustry {
    name: string;
    evidence: Evidence[];
}

export interface Keyword {
    term: string;
    rationale: string;
}

export interface CompetitorCandidate {
    name: string;
    url: string;
    confidence: number;
    why: string;
    evidence: Evidence[];
    manual_urls?: string;
}

export interface ShortlistedCompetitor {
    name: string;
    url: string;
}

export interface Analysis {
    competitor: {
        name: string;
        url: string;
    };
    portfolio: {
        product: string;
        purpose: string;
        category?: string;
    }[];
    target_industries: string[];
    delivery_model: string;
    overlap_score: number;
    differentiators: string[];
    evidence: Evidence[];
}

export interface SilverBullet {
    competitor_name: string;
    statement: string;
}

export interface Conclusion {
    product_matrix: {
        product: string;
        availability: { competitor: string; has_offering: boolean; }[];
    }[];
    industry_matrix: {
        industry: string;
        availability: { competitor: string; has_offering: boolean; }[];
    }[];
    overlap_scores: { competitor: string; score: number }[];
    summary: string;
    opportunities: string;
    next_questions: string[];
}

export interface Battlecard {
    competitor_name: string;
    competitor_profile: {
        focus: string;
        positioning: string;
    };
    strengths_vs_weaknesses: (string | { text: string; category: string })[];
    landmine_questions: (string | { text: string; category: string })[];
    silver_bullet: string;
}

export interface ReferenceCustomer {
    name: string;
    industry: string;
    testimonial_snippet: string;
    case_study_url: string;
}

export interface ReferenceAnalysis {
    competitor_name: string;
    references: ReferenceCustomer[];
}


export interface AppState {
    step: number;
    initial_params: {
        start_url: string;
        max_competitors: number;
        market_scope: string;
        language: 'de' | 'en';
    };
    company: {
        name: string;
        start_url: string;
    };
    products: Product[];
    target_industries: TargetIndustry[];
    keywords: Keyword[];
    competitor_candidates: CompetitorCandidate[];
    competitors_shortlist: ShortlistedCompetitor[];
    analyses: Analysis[];
    silver_bullets: SilverBullet[];
    conclusion: Conclusion | null;
    battlecards: Battlecard[];
    reference_analysis: ReferenceAnalysis[];
    reference_analysis_grounding: any[];
}