/**
 * GoalCompiler — decomposes a high-level goal (from /goal) into concrete,
 * executable mission drafts.
 *
 * Phase 2 (Goal→Mission Bridge) of the autonomous-agent milestone.
 *
 * The daemon's QueueScheduler executes missions, but missions have to come
 * from somewhere. This compiler is the bridge: it reads the user's stated
 * goal (optionally framed by their longer-term dream) and asks the Brain to
 * break it into 1–N missions, each with explicit acceptance criteria and a
 * bounded step budget.
 *
 * Cost note: uses Brain.thinkFast() (the cheap tier) rather than a dedicated
 * auxiliary credential. OpenLife's Brain is stateless per call — there is no
 * conversation cache to pollute (unlike Hermes), so the only thing that
 * matters is using a cheap model, which thinkFast already does. A separate
 * ModelManager.getAuxiliary() is deferred until a real need appears.
 *
 * Safety: every draft is validated before it can become a mission. A draft
 * without acceptance criteria would produce a mission with no stopping
 * condition, so such drafts are dropped, not enqueued.
 */
import { Brain } from './Brain';
export interface MissionDraft {
    /** Concrete, self-contained mission goal text. */
    goal: string;
    /** At least one testable acceptance criterion. Required. */
    acceptanceCriteria: string[];
    /** Bounded step budget. Clamped to [1, maxStepsCap]. */
    maxSteps: number;
    /** Why this mission advances the parent goal (optional, for traceability). */
    rationale?: string;
}
export interface GoalCompilerOptions {
    brain?: Brain;
    /** Hard cap on drafts returned per compile. Default 5. */
    maxDrafts?: number;
    /** Hard cap on steps per mission. Default 12. */
    maxStepsCap?: number;
}
export interface CompileResult {
    ok: boolean;
    drafts: MissionDraft[];
    /** 'llm' when the Brain produced drafts; 'heuristic' on fallback; 'error' on failure. */
    source: 'llm' | 'heuristic' | 'error';
    error?: string;
}
export declare class GoalCompiler {
    private readonly brain;
    private readonly maxDrafts;
    private readonly maxStepsCap;
    constructor(opts?: GoalCompilerOptions);
    compile(goal: string, dream?: string): Promise<CompileResult>;
    /** Validate + sanitize raw LLM mission objects into MissionDrafts. */
    private validateDrafts;
    private heuristicDraft;
    private systemPrompt;
    private userPrompt;
}
