/**
 * Auto Mode Completion Evaluator
 *
 * Evaluates whether auto mode success criteria are met using LLM-based
 * semantic understanding. Reuses the Claude CLI spawn pattern from
 * llm-plugin-detector.ts.
 *
 * Model Selection:
 * - No LLM: tasks_complete, acs_satisfied (grep-based)
 * - Haiku: tests_pass, build_succeeds (binary checks)
 * - Opus: llm_evaluate, custom criteria (semantic understanding with ultrathink)
 *
 * @module core/auto/completion-evaluator
 */
import type { SuccessCriterion, CompletionEvaluationResult } from './types.js';
/**
 * Context for LLM evaluation
 */
export interface EvaluationContext {
    incrementId: string;
    tasksContent?: string;
    specContent?: string;
    testOutput?: string;
    userGoal?: string;
}
/**
 * Options for completion evaluation
 */
export interface EvaluationOptions {
    verbose?: boolean;
    timeout?: number;
    model?: 'haiku' | 'sonnet' | 'opus';
    skipLLM?: boolean;
}
/**
 * Load auto-mode.json and get success criteria
 */
export declare function loadSuccessCriteria(projectPath: string): SuccessCriterion[] | null;
/**
 * Main evaluation function
 *
 * Evaluates all success criteria for an increment and returns
 * a comprehensive result indicating whether auto mode should complete.
 */
export declare function evaluateCompletion(projectPath: string, incrementId: string, options?: EvaluationOptions): Promise<CompletionEvaluationResult>;
/**
 * Extract success criteria from user prompt using LLM
 *
 * Called at auto mode session start to understand user's goal.
 */
export declare function extractSuccessCriteria(userPrompt: string, timeout?: number): Promise<{
    success: boolean;
    criteria: SuccessCriterion[];
    summary: string;
    confidence: number;
    error?: string;
}>;
/**
 * Format evaluation result for display
 */
export declare function formatEvaluationResult(result: CompletionEvaluationResult): string;
//# sourceMappingURL=completion-evaluator.d.ts.map