/**
 * Shipped policies for the exploration engine.
 *
 * `Proposer` is a plain function type — an agent running a generator skill IS a
 * proposer (`(ctx) => dispatchToSkill(ctx)`), no wrapper needed. `mutationProposer`
 * builds the deterministic, LLM-free one from mutation operators. Objectives are
 * interfaces because the engine reads `kind` + `threshold` off them.
 */
import type { AdversarialMutation } from '../rl/adversarial';
import type { Cell, Objective, Proposer } from './types';
/**
 * Perturbation-based search: apply the cell's mutation operators to the current
 * elites + seeds, deduping by id. Elites first — mutating the most interesting
 * scenario found so far is what makes the search deepen across rounds.
 */
export declare function mutationProposer<S>(opts: {
    mutationsFor: (cell: Cell) => AdversarialMutation<S>[];
    scenarioId: (s: S) => string;
}): Proposer<S>;
/** Adversarial: a low headline score is interesting — find where the agent fails. */
export declare function adversarialObjective(threshold?: number): Objective;
/**
 * Novelty: interesting when far from the archive in score AND measured behavior
 * descriptor — quality-diversity's diversity pressure; drives corpus growth
 * rather than re-finding the same hole.
 */
export declare function noveltyObjective(threshold?: number): Objective;
//# sourceMappingURL=policies.d.ts.map