/**
 * @fileoverview Ralph Loop prompt construction
 *
 * Builds the full `@ralph_prompt.md` content written for a new Ralph loop
 * session, including the RALPH_STATUS block contract. The contract travels
 * with the loop prompt (not the generated CLAUDE.md) so every Ralph session
 * emits parseable status blocks regardless of the project's CLAUDE.md.
 *
 * @module prompts/ralph
 */
/**
 * Structured status-reporting contract appended to every Ralph loop prompt.
 *
 * `RalphStatusParser` (src/ralph-status-parser.ts) parses this block from
 * session output — keep the field names and enum values in sync with its
 * patterns.
 */
export declare const RALPH_STATUS_CONTRACT = "## Status Reporting\n\nEnd EVERY response with exactly this block \u2014 Codeman parses it to track the loop:\n\n```\n---RALPH_STATUS---\nSTATUS: IN_PROGRESS | COMPLETE | BLOCKED\nTASKS_COMPLETED_THIS_LOOP: <number>\nFILES_MODIFIED: <number>\nTESTS_STATUS: PASSING | FAILING | NOT_RUN\nWORK_TYPE: IMPLEMENTATION | TESTING | DOCUMENTATION | REFACTORING\nEXIT_SIGNAL: false | true\nRECOMMENDATION: <one line: what to do next>\n---END_RALPH_STATUS---\n```\n\nRules:\n- `EXIT_SIGNAL: true` only when ALL tasks are verifiably done \u2014 then also output the completion phrase\n- `STATUS: BLOCKED` when you need human input; describe the blocker in RECOMMENDATION\n- Never set `EXIT_SIGNAL: true` while tests are failing\n";
export interface RalphLoopPromptOptions {
    /** The user's task description (becomes the prompt header) */
    taskDescription: string;
    /** Completion phrase the session must emit inside <promise></promise> */
    completionPhrase: string;
    /** Whether a @fix_plan.md task plan was generated for this loop */
    hasPlan: boolean;
}
/**
 * Builds the full Ralph loop prompt written to `@ralph_prompt.md`.
 */
export declare function buildRalphLoopPrompt({ taskDescription, completionPhrase, hasPlan }: RalphLoopPromptOptions): string;
//# sourceMappingURL=ralph.d.ts.map