/**
 * src/compute/strategies/mixture-of-agents.ts
 *
 * Mixture-of-Agents (MoA) compute strategy.
 *
 * Reference: Wang et al. 2024, "Mixture of Agents", arXiv:2406.04692.
 *
 * Algorithm:
 *   - L rounds (layers). Each round runs M proposers (independent parallel calls).
 *   - After each round, an aggregator synthesizes the M outputs into ONE result.
 *   - The synthesized result becomes the seed for the next round (currently
 *     opaque to the generator — synthesis is purely on the output side; the
 *     same input is used each round, but the aggregated state is returned).
 *   - Final aggregated output is the answer.
 *
 * Budget: M × L total generator calls.
 *
 * Default aggregation:
 *   - string outputs : concatenate with "\n---\n" then take first non-empty
 *   - number outputs : median
 *   - other          : first element
 *
 * @experimental Public-experimental API per `contract-stability.md` (sprint-582).
 */
import type { Strategy } from "../types.js";
export interface MoAConfig<TOutput> {
    /** Number of rounds (L). Default: 2. */
    rounds: number;
    /** Proposers per round (M). Default: 3. */
    proposersPerRound: number;
    /** Aggregation function: M outputs → 1 synthesized output. */
    aggregate?: (outputs: TOutput[]) => TOutput;
}
/**
 * Construct a Mixture-of-Agents {@link Strategy}.
 *
 * @throws RangeError when `rounds` or `proposersPerRound` < 1.
 */
export declare function mixtureOfAgentsStrategy<TInput, TOutput>(config?: Partial<MoAConfig<TOutput>>): Strategy<TInput, TOutput>;
//# sourceMappingURL=mixture-of-agents.d.ts.map