/**
 * Traced judge wrappers — instruments every LLM call inside the judge
 * ensemble with child spans so OTEL sinks see per-judge latency, model,
 * token counts, and score dimensions.
 *
 * The ensemble parent span groups all individual judge spans; each judge
 * gets its own child span with model + score as attributes.
 */
import type { TraceEmitter } from './trace/emitter';
import type { JudgeFn } from './types';
export interface TracedJudgeOptions {
    /** TraceEmitter to emit spans into. */
    emitter: TraceEmitter;
    /** Parent span id for the ensemble. If omitted, uses the emitter stack. */
    parentSpanId?: string;
}
/**
 * Wrap a single JudgeFn so its LLM call emits a traced span.
 */
export declare function traceJudge(judge: JudgeFn, judgeName: string, opts: TracedJudgeOptions): JudgeFn;
/**
 * Wrap an array of JudgeFns with tracing, running them inside an ensemble
 * parent span. Returns a single function that calls all judges and merges
 * their scores.
 */
export declare function traceJudgeEnsemble(judges: JudgeFn[], judgeNames: string[], opts: TracedJudgeOptions): JudgeFn;
//# sourceMappingURL=traced-judges.d.ts.map