import type * as http from "node:http";
import type { EvalCase } from "../eval/schema.js";
import type { BenchmarkResult, BenchmarkCase } from "../eval/benchmark.js";
import type { LlmClient } from "../eval/llm.js";
import type { JudgeCache } from "../eval/judge-cache.js";
export declare function checkWeakJudgeWarning(generatorModel: string, judgeModel: string): string | null;
export interface SingleCaseRunOptions {
    res: http.ServerResponse;
    evalCase: EvalCase;
    systemPrompt: string;
    client: LlmClient;
    judgeClient?: LlmClient;
    judgeCache?: JudgeCache;
    isAborted: () => boolean;
    totalCases?: number;
    provider?: string;
}
export declare function runSingleCaseSSE(opts: SingleCaseRunOptions): Promise<BenchmarkCase>;
export declare function assembleBulkResult(cases: BenchmarkCase[], meta: {
    model: string;
    skillName: string;
    runType: "benchmark" | "baseline";
    provider: string;
}): BenchmarkResult;
export interface BenchmarkRunOptions {
    res: http.ServerResponse;
    skillDir: string;
    skillName: string;
    systemPrompt: string;
    runType: "benchmark" | "baseline";
    provider: string;
    evalCases: EvalCase[];
    filterIds: Set<number> | null;
    client: LlmClient;
    judgeClient?: LlmClient;
    judgeCache?: JudgeCache;
    isAborted: () => boolean;
    concurrency?: number;
}
export declare function runBenchmarkSSE(opts: BenchmarkRunOptions): Promise<void>;
