/**
 * Structured Critic (Phase 3)
 *
 * Replaces raw gate-output dumps with a decomposed repair plan. After a
 * failed iteration, the critic analyzes the gate feedback through a
 * gate-specific lens and emits a numbered, file-scoped fix list sized for
 * small-model context budgets — one concrete action per line beats a wall
 * of compiler output.
 */
import type { LoopExecutor } from './convergence-loop.js';
import type { IterationRecord } from './convergence-loop.js';
export interface CritiqueInput {
    instruction: string;
    /** The failed iteration being critiqued */
    record: IterationRecord;
    /** Gate feedback from the ladder (already truncated) */
    feedback: string;
    /** Model output from the failed attempt (already truncated) */
    attemptOutput: string;
}
export interface Critique {
    /** Numbered, file-scoped repair steps */
    fixList: string[];
    /** Gate the critique focuses on (first failing required gate) */
    focusGate?: string;
}
export type Critic = (input: CritiqueInput) => Promise<Critique>;
/** Parse numbered lines ("1. ...", "2) ...") out of model output. */
export declare function parseFixList(text: string): string[];
/**
 * Model-backed critic. Fail-soft: on executor error or unparseable output
 * it returns an empty fix list, and the loop falls back to raw feedback.
 */
export declare function createModelCritic(executor: LoopExecutor): Critic;
//# sourceMappingURL=critic.d.ts.map