/**
 * Vision & Market Research Analyzer
 *
 * Analyzes product vision descriptions using AI to extract:
 * - Keywords and domain focus
 * - Market category classification
 * - Competitor analysis
 * - Opportunity scoring
 * - Viral potential detection
 * - Adaptive follow-up questions
 *
 * This is the foundation of SpecWeave's research-driven init flow.
 */
import { VisionInsights } from './types.js';
/**
 * Configuration for VisionAnalyzer
 */
export interface VisionAnalyzerConfig {
    /** Cache duration for analysis results (in milliseconds) */
    cacheDuration?: number;
    /** Maximum number of competitors to return */
    maxCompetitors?: number;
    /** Maximum number of follow-up questions */
    maxFollowUpQuestions?: number;
    /** Minimum keyword score threshold */
    minKeywordScore?: number;
}
/**
 * VisionAnalyzer - Main class for vision analysis
 *
 * **Usage**:
 * ```typescript
 * const analyzer = new VisionAnalyzer();
 * const insights = await analyzer.analyze('A Figma-like design tool for remote teams');
 * console.log(insights.market); // 'productivity-saas'
 * console.log(insights.keywords); // ['design', 'collaboration', 'remote teams']
 * console.log(insights.viralPotential); // true
 * ```
 */
export declare class VisionAnalyzer {
    private config;
    private cache;
    /**
     * Create a new VisionAnalyzer
     *
     * @param config - Optional configuration
     */
    constructor(config?: VisionAnalyzerConfig);
    /**
     * Analyze product vision and return insights
     *
     * This is the primary method that orchestrates the entire analysis:
     * 1. Check cache
     * 2. Extract keywords (LLM or rules)
     * 3. Detect market category (LLM or rules)
     * 4. Identify competitors (LLM or empty)
     * 5. Calculate opportunity score
     * 6. Detect viral potential
     * 7. Generate follow-up questions
     * 8. Validate and return results
     *
     * @param vision - User's product vision (1-3 sentences)
     * @returns VisionInsights with validated data
     *
     * @example
     * ```typescript
     * const insights = await analyzer.analyze(
     *   'A project management tool for agile teams with real-time collaboration'
     * );
     * ```
     */
    analyze(vision: string): Promise<VisionInsights>;
    /**
     * Perform the actual analysis
     *
     * Implementation status:
     * - ✅ T-002: Keyword extraction (pattern-based)
     * - ✅ T-003: Market detection (rule-based classification)
     * - ✅ T-004: Competitor analysis (keyword similarity)
     * - ✅ T-005: Opportunity scoring (algorithmic)
     * - ✅ T-006: Follow-up questions (adaptive)
     *
     * @param vision - Trimmed vision text
     * @returns VisionInsights
     */
    private performAnalysis;
    /**
     * Get cached insights if available and not expired
     *
     * @param vision - Vision text (cache key)
     * @returns Cached insights or undefined
     */
    private getCached;
    /**
     * Store insights in cache
     *
     * @param vision - Vision text (cache key)
     * @param insights - Insights to cache
     */
    private setCached;
    /**
     * Clear cache (useful for testing)
     */
    clearCache(): void;
    /**
     * Get current configuration
     */
    getConfig(): Readonly<Required<VisionAnalyzerConfig>>;
    /**
     * Update configuration
     *
     * @param config - Partial config to merge
     */
    updateConfig(config: Partial<VisionAnalyzerConfig>): void;
    /**
     * Save vision insights to .specweave/config.json
     *
     * @param insights - Vision insights to save
     * @param configPath - Optional custom config path
     *
     * @example
     * ```typescript
     * const insights = await analyzer.analyze(vision);
     * await VisionAnalyzer.saveToConfig(insights);
     * ```
     */
    static saveToConfig(insights: VisionInsights, configPath?: string): Promise<void>;
}
//# sourceMappingURL=VisionAnalyzer.d.ts.map