import { BaseApiClient, BaseApiClientConfig, BaseApiError } from "./base-client.js";
import { TriggerConversationEvaluationRequest, TriggerEvaluationJobRequest } from "../types/entities.js";

//#region src/api-client/eval-api-client.d.ts
declare class EvalApiError extends BaseApiError {
  constructor(message: string, statusCode: number, responseBody: string);
}
interface TriggerConversationEvaluationResponse {
  success: boolean;
  message: string;
  evaluationsTriggered: number;
}
interface TriggerBatchConversationEvaluationResponse {
  queued: number;
  failed: number;
}
interface TriggerEvaluationJobResponse {
  queued: number;
  failed: number;
  evaluationRunId: string;
  conversationCount: number;
}
declare class EvalApiClient extends BaseApiClient {
  constructor(config: BaseApiClientConfig);
  /**
   * Override to return EvalApiError
   */
  protected createError(message: string, statusCode: number, responseBody: string): EvalApiError;
  /**
   * Trigger an evaluation job
   * Filters conversations based on job filters, creates an evaluation run, and enqueues workflows
   */
  triggerEvaluationJob(request: TriggerEvaluationJobRequest): Promise<TriggerEvaluationJobResponse>;
  triggerConversationEvaluation(request: TriggerConversationEvaluationRequest): Promise<TriggerConversationEvaluationResponse>;
}
//#endregion
export { EvalApiClient, EvalApiError, TriggerBatchConversationEvaluationResponse, TriggerConversationEvaluationResponse, TriggerEvaluationJobResponse };