export declare const RUBRIC_INSTRUCTIONS = "You are an exacting grader. Your job is to judge whether an agent's output satisfies each criterion in a rubric.\n\nA rubric is a checklist of criteria. For each criterion you must decide, strictly and independently, whether the output satisfies it.\n\nGrading guidelines:\n- Judge each criterion on its own merits. Do not let one criterion's verdict influence another.\n- A criterion is \"satisfied\" only when the output clearly and fully meets it. When in doubt, mark it as NOT satisfied.\n- Base your judgement on evidence in the output (and the original task for context). Do not assume facts that are not present.\n- Be concise but specific in your reasoning: say what is present or missing.\n- Do not reward effort, intent, or partial progress. Only the actual output counts.";
export interface RubricAnalysisCriterion {
    /** The criterion text, exactly as provided in the rubric. */
    criterion: string;
    /** Whether the output satisfies this criterion. */
    satisfied: boolean;
    /** Whether this criterion is required for the task to be considered complete. */
    required: boolean;
    /** Short explanation of why the criterion is or is not satisfied. */
    reasoning: string;
}
export interface RubricAnalysisResult {
    criteria: RubricAnalysisCriterion[];
    overallAssessment: string;
}
/**
 * A single rubric criterion as provided to the prompt builder.
 */
export interface RubricCriterionInput {
    criterion: string;
    required: boolean;
}
export declare function createAnalyzePrompt({ originalTask, output, criteria, }: {
    originalTask: string;
    output: string;
    criteria: RubricCriterionInput[];
}): string;
/**
 * Format a human-readable, per-criterion explanation of the rubric result. This text is what
 * `isTaskComplete` injects back into the conversation as feedback, so it must clearly tell the
 * agent which criteria are unmet and why.
 */
export declare function formatRubricReason({ score, analysis }: {
    score: number;
    analysis: RubricAnalysisResult;
}): string;
//# sourceMappingURL=prompts.d.ts.map