import { type FileOverlapWavePlan } from '../dispatch/file-overlap-wave-planner.js'; import type { BatchItem } from './batch-progress-types.js'; /** * The one item a diagnostician is asked about. * * `symptom` is what the user reported, in the user's words. It is the * symptom, not a diagnosis — the agent is the one that has to find the * cause. */ export interface BatchDiagnosisItem { readonly id: string; readonly label: string; readonly symptom: string; } /** * Plan the batch's waves from the file sets its items MEASURED. * * @param items - The batch's items, each carrying the file set its * diagnosis reported. * @returns The wave plan: items with disjoint file sets share a wave, and * an item that collides with an earlier one is deferred behind it with * the colliding file named. */ export declare function planBatchTopology(items: readonly BatchItem[]): FileOverlapWavePlan; /** * Build the read-only prompt one diagnostician receives. * * The prompt asks for exactly the four outputs the batch pipeline * consumes — the root cause, the files it expects to change, the risk * surface it hit, and a fix sketch — and forbids the three write tools, so * the file set it reports is a MEASUREMENT rather than a guess. * * @param item - The one item to diagnose. * @returns The composed prompt, ready to be a sub-agent's dispatch body. */ export declare function buildDiagnosisPrompt(item: BatchDiagnosisItem): string;