/**
 * Bedrock LLM Judge Client
 * Calls backend proxy for AWS Bedrock evaluations
 */
import { TrajectoryStep, EvaluationMetrics, ImprovementStrategy, OpenSearchLog, PassFailStatus } from '../../types/index.js';
interface JudgeResult {
    passFailStatus: PassFailStatus;
    metrics: EvaluationMetrics;
    llmJudgeReasoning: string;
    improvementStrategies: ImprovementStrategy[];
    judgeDurationMs?: number;
    judgeAttempts?: number;
    /** Raw text the judge model emitted (forwarded from /api/judge). */
    rawResponse?: string;
    /** Extra JSON keys the model emitted that weren't typed wire fields. */
    extraFields?: Record<string, unknown>;
    /** System/user prompts the judge actually saw (when AH_JUDGE_DEBUG=1). */
    judgeDebug?: {
        provider?: string;
        modelId?: string;
        evaluatorId?: string;
        systemPrompt?: string;
        userPrompt?: string;
    };
}
interface ExpectedBehavior {
    expectedOutcomes?: string[];
    expectedTrajectory?: any[];
}
/**
 * Real Bedrock Judge implementation via backend proxy with exponential backoff retry
 * Calls the backend API which handles AWS Bedrock communication
 * The backend routes to the appropriate provider (demo/bedrock/ollama) based on modelId
 * @param trajectory - The agent's execution trajectory
 * @param expected - Expected outcomes or trajectory
 * @param logs - Optional OpenSearch logs
 * @param onProgress - Optional progress callback
 * @param modelId - Model ID for judge evaluation (determines provider routing)
 * @param evaluatorId - Optional saved evaluator id (resolves the system prompt server-side)
 * @param runId - Agent run id. Forwarded so the `agent` (trace) judge provider's
 *   read-only `query_spans` / `query_logs` tools can scope to this single run.
 *   Without it the route 400s with `runId is required for the agent (trace)
 *   judge provider`. For other providers it's ignored. Pre-fix the runner
 *   never forwarded this even when known on the report, so picking the
 *   `agent-trace-judge` model from the UI Judge Model dropdown always
 *   failed at the route layer.
 * @param agents - Optional Strategy C correlation hints (service.name +
 *   time-window) for the agent (trace) judge. The trace tool unions
 *   Strategy B (`runIds`) with these so spans the agent emits under its
 *   own correlation (claude-code's session id, etc.) are findable. See #264.
 */
export declare function callBedrockJudge(trajectory: TrajectoryStep[], expected: ExpectedBehavior, logs?: OpenSearchLog[], onProgress?: (chunk: string) => void, modelId?: string, evaluatorId?: string, runId?: string, agents?: Array<{
    serviceName: string;
    startedAt: number;
    endedAt: number;
}>): Promise<JudgeResult>;
/**
 * Simulate Bedrock Judge evaluation (fallback for testing)
 * @deprecated Use callBedrockJudge for real evaluations
 */
export declare function simulateBedrockJudge(trajectory: TrajectoryStep[], expectedTrajectory: any[]): JudgeResult;
export {};
//# sourceMappingURL=bedrockJudge.d.ts.map