import type { MutantResult } from '@stryker-mutator/api/core'; import type { RunOptions } from './cli-args'; import { type RunPlan } from './plan'; /** A line emitter for the driver's human-facing output. Injectable for the bin. */ export type LogFn = (line: string) => void; /** The outcome of {@link runLlmMutation}. */ export interface RunLlmMutationResult { /** The plan that was built (always present, even on a dry run). */ plan: RunPlan; /** * Stryker's `MutantResult[]` when `--live` actually ran, or `undefined` on a * `--dry-run` (which never constructs `new Stryker()`). */ results?: MutantResult[]; } /** * Run (or dry-run) an LLM-augmented mutation test against `opts.projectDir`. The * decision logic is the PURE {@link buildRunPlan}; this function performs the side * effects the plan describes. * * @param opts The parsed CLI run options. * @param log Output sink (defaults to stdout); injectable for the bin/tests. */ export declare function runLlmMutation(opts: RunOptions, log?: LogFn): Promise;