/**
 * Detect Intent CLI Command
 *
 * Detects SpecWeave intent from a user prompt using LLM (Claude Haiku)
 * and optionally installs matching plugins.
 *
 * v1.0.140+: Switched from keyword-based to LLM-only detection.
 * v1.0.141+: Added increment creation suggestions.
 *
 * The LLM analyzes the prompt and decides:
 * 1. Which plugins are needed
 * 2. Whether work should be tracked in an increment
 *
 * Configuration:
 *   Set pluginAutoLoad.enabled: false to disable plugin detection.
 *   Set incrementAssist.enabled: false to disable increment suggestions.
 *
 * Usage:
 *   specweave detect-intent "prompt text"                    # Returns JSON with detected plugins + increment suggestion
 *   specweave detect-intent "prompt text" --install          # Also installs detected plugins
 *   specweave detect-intent "prompt text" --install --silent # Silent mode for hooks
 *
 * @module cli/commands/detect-intent
 */
import { Command } from 'commander';
import { IncrementAction, SkillRouting, SkillInvocation, LspRecommendation } from '../../core/lazy-loading/llm-plugin-detector.js';
export interface DetectIntentOptions {
    /** Also install detected plugins after detection */
    install?: boolean;
    /** Silent mode - no stdout output (for hooks) */
    silent?: boolean;
    /** Output format - json or text */
    json?: boolean;
    /** Read prompt from file instead of argument (avoids shell escaping issues) */
    file?: string;
}
export interface DetectIntentResult {
    /** Whether any plugins were detected */
    detected: boolean;
    /** List of detected plugin names to install */
    plugins: string[];
    /** Confidence score (0-1) from LLM */
    confidence: number;
    /** LLM reasoning (when available) */
    reasoning?: string;
    /** Detection latency in milliseconds */
    latencyMs?: number;
    /** Whether plugins were installed (when --install used) */
    installed?: boolean;
    /** Installation result message (when --install used) */
    installMessage?: string;
    /** Whether LLM detection was skipped (config disabled) */
    skipped?: boolean;
    /** Increment recommendation (v1.0.141+, v1.0.168: added mandatory) */
    increment?: {
        /** Recommended action: new, reopen, small_fix, hotfix, none */
        action: IncrementAction;
        /** Confidence score (0-1) */
        confidence: number;
        /** Whether increment creation is mandatory (LLM decides) */
        mandatory: boolean;
        /** Suggested increment name (for 'new' action) */
        suggestedName?: string;
        /** Related keyword for reopening (for 'reopen' action) */
        relatedKeyword?: string;
        /** Brief explanation */
        reasoning: string;
    };
    /** Whether increment assist was skipped (config disabled) */
    incrementSkipped?: boolean;
    /** Skill routing recommendation (v1.0.150+) */
    routing?: SkillRouting;
    /** Skill invocation recommendation (v1.0.168) */
    skillInvocation?: SkillInvocation;
    /** LSP operation recommendation (v1.0.198+) */
    lsp?: LspRecommendation;
    /** vskill marketplace plugin recommendations (v1.0.542) */
    vskillRecommendations?: Array<{
        plugin: string;
        matchedKeyword: string;
        installCommand: string;
    }>;
}
/**
 * Detect intent from a user prompt using LLM
 *
 * v1.0.140+: Uses Claude Haiku for accurate intent detection.
 * The LLM decides which plugins are needed based on full context understanding.
 *
 * @param prompt - User's input prompt to analyze
 * @param options - Command options
 * @returns Detection result with plugins to install
 */
export declare function detectIntentCommand(prompt: string, options?: DetectIntentOptions): Promise<DetectIntentResult>;
/**
 * Create the detect-intent command for Commander
 */
export declare function createDetectIntentCommand(): Command;
/**
 * Export for direct CLI invocation
 */
export declare function main(): Promise<void>;
//# sourceMappingURL=detect-intent.d.ts.map