/**
 * Army runner — dispatch scenarios across multiple concurrent worker processes.
 *
 * Each worker is a separate Bun sub-process running a slice of the scenario list.
 * Results land in the shared SQLite DB (WAL mode supports concurrent writers).
 * The parent process polls until all workers complete, then returns aggregated stats.
 *
 * Usage:
 *   const { runId, workerCount } = await runWithArmy({ url, scenarioIds, workers: 5, ... });
 *   // Poll getRun(runId) to check progress
 */
import type { Run } from "../types/index.js";
export interface ArmyRunOptions {
    url: string;
    workers?: number;
    scenarioIds?: string[];
    tags?: string[];
    projectId?: string;
    model?: string;
    parallel?: number;
    timeout?: number;
    apiKey?: string;
    personaId?: string;
}
export interface ArmyRunResult {
    runId: string;
    workerCount: number;
    scenarioCount: number;
    status: "dispatched";
    message: string;
}
/**
 * Dispatch scenarios to multiple worker processes. Returns immediately after
 * all workers are spawned — poll the run record to check progress.
 */
export declare function runWithArmy(options: ArmyRunOptions): Promise<ArmyRunResult>;
/**
 * Wait for an army run to complete. Polls every 3s up to timeoutMs.
 */
export declare function waitForArmyRun(runId: string, timeoutMs?: number): Promise<Run>;
//# sourceMappingURL=army-runner.d.ts.map