import type { GoalEvidence, GoalSpec, ArtifactEvidence } from "../contracts/goal.js";
import type { RunState } from "../contracts/orchestration.js";
export interface GoalEvidenceContext {
    root: string;
    runState: RunState;
}
export declare function checkGoalEvidence(goal: GoalSpec, context: GoalEvidenceContext): Promise<GoalEvidence[]>;
export declare function checkGoalConstraints(goal: GoalSpec): {
    passed: boolean;
    violations: string[];
};
/**
 * Check a single artifact evidence entry.
 * Supports file path, command output, and URL evidence types.
 */
export declare function checkArtifactEvidence(artifact: GoalSpec["expectedArtifacts"][number], root: string, providedEvidence?: ArtifactEvidence): Promise<ArtifactEvidence>;
/**
 * Handle missing evidence gracefully by returning a failed evidence record with a message.
 */
export declare function missingEvidence(criterionId: string, reason: string): GoalEvidence;
