/**
 * `haloProposer` — wraps the REAL halo-engine (Inference.net's hierarchical
 * agentic trace analyzer, `pip install halo-engine`, repo context-labs/halo)
 * as an agent-eval `SurfaceProposer`, so HALO competes head-to-head with
 * `gepaProposer` — and with our own `traceAnalystProposer` — inside `compareProposers`
 * on identical traces / scenarios / held-out scoring.
 *
 * It PRESERVES halo's actual working usage — `analyze` shells out to the
 * published CLI (`halo <traces.jsonl> -p <prompt> -m <model>`) and uses its real
 * RLM findings verbatim. We do NOT reimplement its analysis; that would make the
 * benchmark meaningless. The materialize/apply pipeline is the shared
 * `analysisEditProposer` — identical to `traceAnalystProposer`, which is what makes
 * the comparison apples-to-apples.
 *
 * Fail-loud: no traces → throw; halo errors → throw; empty findings → throw.
 */
import type { LlmClientOptions } from '../../llm-client';
import type { ProposeContext, SurfaceProposer } from '../types';
export interface HaloProposerOptions {
    /** OpenAI-compatible base URL for BOTH halo's RLM analysis and the apply
     *  step (e.g. the Tangle router `https://router.tangle.tools/v1`). */
    baseUrl: string;
    /** Bearer key (else relies on OPENAI_API_KEY in the env halo inherits). */
    apiKey?: string;
    /** Model for halo's `--model` (its RLM). Default 'gpt-5.4-mini' (halo's own default). */
    model?: string;
    /** Model used to APPLY halo's findings to the prompt surface. Default = `model`. */
    applyModel?: string;
    /** The real halo binary. Default 'halo' (from `pip install halo-engine`). */
    haloBin?: string;
    /** Resolve the OTLP traces (JSONL string) halo should analyze for THIS
     *  generation. Returning empty throws (halo has nothing to analyze). */
    resolveTraces: (ctx: ProposeContext) => string | Promise<string>;
    /** halo's analysis prompt (`-p`). Default targets the failure taxonomy. */
    analysisPrompt?: string;
    /** halo `--max-depth` / `--max-turns` passthrough. */
    maxDepth?: number;
    maxTurns?: number;
    /** Test seam: inject a fetch for the apply-step callLlm (no network in unit tests). */
    fetchImpl?: LlmClientOptions['fetch'];
}
/** Wrap the real halo-engine CLI as a SurfaceProposer (prompt-tier). */
export declare function haloProposer(opts: HaloProposerOptions): SurfaceProposer;
//# sourceMappingURL=halo.d.ts.map