import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The role of the prompt message
 */
export declare const Role: {
    readonly System: "system";
    readonly Developer: "developer";
    readonly Assistant: "assistant";
    readonly User: "user";
    readonly Exception: "exception";
    readonly Tool: "tool";
    readonly Prompt: "prompt";
    readonly Correction: "correction";
    readonly ExpectedOutput: "expected_output";
};
/**
 * The role of the prompt message
 */
export type Role = ClosedEnum<typeof Role>;
export type FileT = {
    /**
     * The file data as a data URI string in the format 'data:<mime-type>;base64,<base64-encoded-data>'. Example: 'data:image/png;base64,iVBORw0KGgoAAAANS...'
     */
    fileData?: string | undefined;
    /**
     * URL to the file. Only supported by Anthropic Claude models for PDF files.
     */
    uri?: string | undefined;
    /**
     * MIME type of the file (e.g., application/pdf, image/png)
     */
    mimeType?: string | undefined;
    /**
     * The name of the file, used when passing the file to the model as a string.
     */
    filename?: string | undefined;
};
export type Three = {
    /**
     * The type of the content part. Always `file`.
     */
    type: "file";
    file: FileT;
};
export type ImageUrl = {
    /**
     * Either a URL of the image or the base64 encoded data URI.
     */
    url: string;
    /**
     * Specifies the detail level of the image. Currently only supported with OpenAI models
     */
    detail?: string | undefined;
};
/**
 * The image part of the prompt message. Only supported with vision models.
 */
export type Two2 = {
    type: "image_url";
    imageUrl: ImageUrl;
};
/**
 * Text content part of a prompt message
 */
export type One = {
    type: "text";
    text: string;
};
export type Two = One | Two2 | Three;
/**
 * The contents of the user message. Either the text content of the message or an array of content parts with a defined type, each can be of type `text` or `image_url` when passing in images. You can pass multiple images by adding multiple `image_url` content parts. Can be null for tool messages in certain scenarios.
 */
export type Content = string | Array<One | Two2 | Three>;
export declare const InvokeEvalType: {
    readonly Function: "function";
};
export type InvokeEvalType = ClosedEnum<typeof InvokeEvalType>;
export type FunctionT = {
    name: string;
    /**
     * JSON string arguments for the functions
     */
    arguments: string;
};
export type ToolCalls = {
    id?: string | undefined;
    index?: number | undefined;
    type: InvokeEvalType;
    function: FunctionT;
};
export type Messages = {
    /**
     * The role of the prompt message
     */
    role: Role;
    /**
     * The contents of the user message. Either the text content of the message or an array of content parts with a defined type, each can be of type `text` or `image_url` when passing in images. You can pass multiple images by adding multiple `image_url` content parts. Can be null for tool messages in certain scenarios.
     */
    content: string | Array<One | Two2 | Three> | null;
    toolCalls?: Array<ToolCalls> | undefined;
    toolCallId?: string | null | undefined;
};
export type InvokeEvalRequestBody = {
    /**
     * Latest user message
     */
    query?: string | undefined;
    /**
     * The generated response from the model
     */
    output?: string | undefined;
    /**
     * The reference used to compare the output
     */
    reference?: string | undefined;
    /**
     * Knowledge base retrievals
     */
    retrievals?: Array<string> | undefined;
    /**
     * The messages used to generate the output, without the last user message
     */
    messages?: Array<Messages> | undefined;
    /**
     * Model to use for LLM-based evaluators (e.g. "openai/gpt-4o")
     */
    model?: string | undefined;
};
export type InvokeEvalRequest = {
    /**
     * Evaluator ID
     */
    id: string;
    requestBody?: InvokeEvalRequestBody | undefined;
};
export type Structured = {
    type: "structured";
    value: {
        [k: string]: any;
    };
};
export type InvokeEvalResponseBodyEvalsResponse200ApplicationJson8Value = number | boolean;
export type InvokeEvalResponseBodyEvalsResponseValue = {
    type: string;
    value: number | boolean;
};
export type InvokeEvalResponseBodyHTTP = {
    type: "http_eval";
    value?: InvokeEvalResponseBodyEvalsResponseValue | null | undefined;
};
export type InvokeEvalResponseBodyEvalsResponse200ApplicationJSONValue = number | boolean | string;
export type OriginalValue = number | boolean | string;
export type InvokeEvalResponseBodyEvalsResponse200ApplicationJson7Value = number | boolean | string;
export type Votes = {
    model: string;
    replacement: boolean;
    success: boolean;
    value?: number | boolean | string | undefined;
    explanation?: string | undefined;
    error?: string | undefined;
};
export type Stats = {
    mean: number;
    std: number;
};
export type ResponseBodyJury = {
    judgesConfigured: number;
    judgesSucceeded: number;
    judgesFailed: number;
    replacementsUsed: number;
    tie: boolean;
    votes: Array<Votes>;
    stats?: Stats | undefined;
};
export type InvokeEvalResponseBodyEvalsValue = {
    workflowRunId?: string | undefined;
    traceId?: string | undefined;
    value: number | boolean | string | null;
    explanation?: string | null | undefined;
    originalValue?: number | boolean | string | null | undefined;
    originalExplanation?: string | null | undefined;
    jury?: ResponseBodyJury | undefined;
};
export type InvokeEvalResponseBodyLLM = {
    type: "llm_evaluator";
    value: InvokeEvalResponseBodyEvalsValue | null;
};
export type InvokeEvalResponseBodyValue = {
    f1: number;
    precision: number;
    recall: number;
};
export type BERTScore = {
    type: "bert_score";
    value: InvokeEvalResponseBodyValue;
};
export type Rouge1 = {
    f1: number;
    precision: number;
    recall: number;
};
export type Rouge2 = {
    f1: number;
    precision: number;
    recall: number;
};
export type RougeL = {
    f1: number;
    precision: number;
    recall: number;
};
export type ResponseBodyValue = {
    rouge1: Rouge1;
    rouge2: Rouge2;
    rougeL: RougeL;
};
export type RougeN = {
    type: "rouge_n";
    value: ResponseBodyValue;
};
export type StringArray = {
    type: "string_array";
    values: Array<string | null>;
};
export type InvokeEvalResponseBodyEvalsResponse200Value = boolean | string | number;
export type ResponseBodyBoolean = {
    type: "boolean";
    value: boolean | string | number | null;
};
export declare const FormatOptionsStyle: {
    readonly Currency: "currency";
};
export type FormatOptionsStyle = ClosedEnum<typeof FormatOptionsStyle>;
export declare const Currency: {
    readonly Usd: "USD";
};
export type Currency = ClosedEnum<typeof Currency>;
export type FormatOptions2 = {
    style: FormatOptionsStyle;
    currency: Currency;
};
export type FormatOptions1 = {
    significantDigits: number;
};
export type FormatOptions = FormatOptions2 | FormatOptions1;
export type ResponseBodyNumber = {
    type: "number";
    originalValue?: number | null | undefined;
    value: number | null;
    formatOptions?: FormatOptions2 | FormatOptions1 | undefined;
};
export type String = {
    type: "string";
    originalValue?: string | null | undefined;
    value?: string | null | undefined;
};
/**
 * Returns the result of the evaluator run
 */
export type InvokeEvalResponseBody = String | ResponseBodyNumber | ResponseBodyBoolean | StringArray | RougeN | BERTScore | InvokeEvalResponseBodyLLM | InvokeEvalResponseBodyHTTP | Structured;
/** @internal */
export declare const Role$outboundSchema: z.ZodNativeEnum<typeof Role>;
/** @internal */
export type FileT$Outbound = {
    file_data?: string | undefined;
    uri?: string | undefined;
    mimeType?: string | undefined;
    filename?: string | undefined;
};
/** @internal */
export declare const FileT$outboundSchema: z.ZodType<FileT$Outbound, z.ZodTypeDef, FileT>;
export declare function fileToJSON(fileT: FileT): string;
/** @internal */
export type Three$Outbound = {
    type: "file";
    file: FileT$Outbound;
};
/** @internal */
export declare const Three$outboundSchema: z.ZodType<Three$Outbound, z.ZodTypeDef, Three>;
export declare function threeToJSON(three: Three): string;
/** @internal */
export type ImageUrl$Outbound = {
    url: string;
    detail?: string | undefined;
};
/** @internal */
export declare const ImageUrl$outboundSchema: z.ZodType<ImageUrl$Outbound, z.ZodTypeDef, ImageUrl>;
export declare function imageUrlToJSON(imageUrl: ImageUrl): string;
/** @internal */
export type Two2$Outbound = {
    type: "image_url";
    image_url: ImageUrl$Outbound;
};
/** @internal */
export declare const Two2$outboundSchema: z.ZodType<Two2$Outbound, z.ZodTypeDef, Two2>;
export declare function two2ToJSON(two2: Two2): string;
/** @internal */
export type One$Outbound = {
    type: "text";
    text: string;
};
/** @internal */
export declare const One$outboundSchema: z.ZodType<One$Outbound, z.ZodTypeDef, One>;
export declare function oneToJSON(one: One): string;
/** @internal */
export type Two$Outbound = One$Outbound | Two2$Outbound | Three$Outbound;
/** @internal */
export declare const Two$outboundSchema: z.ZodType<Two$Outbound, z.ZodTypeDef, Two>;
export declare function twoToJSON(two: Two): string;
/** @internal */
export type Content$Outbound = string | Array<One$Outbound | Two2$Outbound | Three$Outbound>;
/** @internal */
export declare const Content$outboundSchema: z.ZodType<Content$Outbound, z.ZodTypeDef, Content>;
export declare function contentToJSON(content: Content): string;
/** @internal */
export declare const InvokeEvalType$outboundSchema: z.ZodNativeEnum<typeof InvokeEvalType>;
/** @internal */
export type FunctionT$Outbound = {
    name: string;
    arguments: string;
};
/** @internal */
export declare const FunctionT$outboundSchema: z.ZodType<FunctionT$Outbound, z.ZodTypeDef, FunctionT>;
export declare function functionToJSON(functionT: FunctionT): string;
/** @internal */
export type ToolCalls$Outbound = {
    id?: string | undefined;
    index?: number | undefined;
    type: string;
    function: FunctionT$Outbound;
};
/** @internal */
export declare const ToolCalls$outboundSchema: z.ZodType<ToolCalls$Outbound, z.ZodTypeDef, ToolCalls>;
export declare function toolCallsToJSON(toolCalls: ToolCalls): string;
/** @internal */
export type Messages$Outbound = {
    role: string;
    content: string | Array<One$Outbound | Two2$Outbound | Three$Outbound> | null;
    tool_calls?: Array<ToolCalls$Outbound> | undefined;
    tool_call_id?: string | null | undefined;
};
/** @internal */
export declare const Messages$outboundSchema: z.ZodType<Messages$Outbound, z.ZodTypeDef, Messages>;
export declare function messagesToJSON(messages: Messages): string;
/** @internal */
export type InvokeEvalRequestBody$Outbound = {
    query?: string | undefined;
    output?: string | undefined;
    reference?: string | undefined;
    retrievals?: Array<string> | undefined;
    messages?: Array<Messages$Outbound> | undefined;
    model?: string | undefined;
};
/** @internal */
export declare const InvokeEvalRequestBody$outboundSchema: z.ZodType<InvokeEvalRequestBody$Outbound, z.ZodTypeDef, InvokeEvalRequestBody>;
export declare function invokeEvalRequestBodyToJSON(invokeEvalRequestBody: InvokeEvalRequestBody): string;
/** @internal */
export type InvokeEvalRequest$Outbound = {
    id: string;
    RequestBody?: InvokeEvalRequestBody$Outbound | undefined;
};
/** @internal */
export declare const InvokeEvalRequest$outboundSchema: z.ZodType<InvokeEvalRequest$Outbound, z.ZodTypeDef, InvokeEvalRequest>;
export declare function invokeEvalRequestToJSON(invokeEvalRequest: InvokeEvalRequest): string;
/** @internal */
export declare const Structured$inboundSchema: z.ZodType<Structured, z.ZodTypeDef, unknown>;
export declare function structuredFromJSON(jsonString: string): SafeParseResult<Structured, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsResponse200ApplicationJson8Value$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsResponse200ApplicationJson8Value, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsResponse200ApplicationJSON8ValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsResponse200ApplicationJson8Value, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsResponseValue$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsResponseValue, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsResponseValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsResponseValue, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyHTTP$inboundSchema: z.ZodType<InvokeEvalResponseBodyHTTP, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyHTTPFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyHTTP, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsResponse200ApplicationJSONValue$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsResponse200ApplicationJSONValue, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsResponse200ApplicationJSONValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsResponse200ApplicationJSONValue, SDKValidationError>;
/** @internal */
export declare const OriginalValue$inboundSchema: z.ZodType<OriginalValue, z.ZodTypeDef, unknown>;
export declare function originalValueFromJSON(jsonString: string): SafeParseResult<OriginalValue, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsResponse200ApplicationJson7Value$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsResponse200ApplicationJson7Value, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsResponse200ApplicationJSON7ValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsResponse200ApplicationJson7Value, SDKValidationError>;
/** @internal */
export declare const Votes$inboundSchema: z.ZodType<Votes, z.ZodTypeDef, unknown>;
export declare function votesFromJSON(jsonString: string): SafeParseResult<Votes, SDKValidationError>;
/** @internal */
export declare const Stats$inboundSchema: z.ZodType<Stats, z.ZodTypeDef, unknown>;
export declare function statsFromJSON(jsonString: string): SafeParseResult<Stats, SDKValidationError>;
/** @internal */
export declare const ResponseBodyJury$inboundSchema: z.ZodType<ResponseBodyJury, z.ZodTypeDef, unknown>;
export declare function responseBodyJuryFromJSON(jsonString: string): SafeParseResult<ResponseBodyJury, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsValue$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsValue, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsValue, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyLLM$inboundSchema: z.ZodType<InvokeEvalResponseBodyLLM, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyLLMFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyLLM, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyValue$inboundSchema: z.ZodType<InvokeEvalResponseBodyValue, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyValue, SDKValidationError>;
/** @internal */
export declare const BERTScore$inboundSchema: z.ZodType<BERTScore, z.ZodTypeDef, unknown>;
export declare function bertScoreFromJSON(jsonString: string): SafeParseResult<BERTScore, SDKValidationError>;
/** @internal */
export declare const Rouge1$inboundSchema: z.ZodType<Rouge1, z.ZodTypeDef, unknown>;
export declare function rouge1FromJSON(jsonString: string): SafeParseResult<Rouge1, SDKValidationError>;
/** @internal */
export declare const Rouge2$inboundSchema: z.ZodType<Rouge2, z.ZodTypeDef, unknown>;
export declare function rouge2FromJSON(jsonString: string): SafeParseResult<Rouge2, SDKValidationError>;
/** @internal */
export declare const RougeL$inboundSchema: z.ZodType<RougeL, z.ZodTypeDef, unknown>;
export declare function rougeLFromJSON(jsonString: string): SafeParseResult<RougeL, SDKValidationError>;
/** @internal */
export declare const ResponseBodyValue$inboundSchema: z.ZodType<ResponseBodyValue, z.ZodTypeDef, unknown>;
export declare function responseBodyValueFromJSON(jsonString: string): SafeParseResult<ResponseBodyValue, SDKValidationError>;
/** @internal */
export declare const RougeN$inboundSchema: z.ZodType<RougeN, z.ZodTypeDef, unknown>;
export declare function rougeNFromJSON(jsonString: string): SafeParseResult<RougeN, SDKValidationError>;
/** @internal */
export declare const StringArray$inboundSchema: z.ZodType<StringArray, z.ZodTypeDef, unknown>;
export declare function stringArrayFromJSON(jsonString: string): SafeParseResult<StringArray, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBodyEvalsResponse200Value$inboundSchema: z.ZodType<InvokeEvalResponseBodyEvalsResponse200Value, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyEvalsResponse200ValueFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBodyEvalsResponse200Value, SDKValidationError>;
/** @internal */
export declare const ResponseBodyBoolean$inboundSchema: z.ZodType<ResponseBodyBoolean, z.ZodTypeDef, unknown>;
export declare function responseBodyBooleanFromJSON(jsonString: string): SafeParseResult<ResponseBodyBoolean, SDKValidationError>;
/** @internal */
export declare const FormatOptionsStyle$inboundSchema: z.ZodNativeEnum<typeof FormatOptionsStyle>;
/** @internal */
export declare const Currency$inboundSchema: z.ZodNativeEnum<typeof Currency>;
/** @internal */
export declare const FormatOptions2$inboundSchema: z.ZodType<FormatOptions2, z.ZodTypeDef, unknown>;
export declare function formatOptions2FromJSON(jsonString: string): SafeParseResult<FormatOptions2, SDKValidationError>;
/** @internal */
export declare const FormatOptions1$inboundSchema: z.ZodType<FormatOptions1, z.ZodTypeDef, unknown>;
export declare function formatOptions1FromJSON(jsonString: string): SafeParseResult<FormatOptions1, SDKValidationError>;
/** @internal */
export declare const FormatOptions$inboundSchema: z.ZodType<FormatOptions, z.ZodTypeDef, unknown>;
export declare function formatOptionsFromJSON(jsonString: string): SafeParseResult<FormatOptions, SDKValidationError>;
/** @internal */
export declare const ResponseBodyNumber$inboundSchema: z.ZodType<ResponseBodyNumber, z.ZodTypeDef, unknown>;
export declare function responseBodyNumberFromJSON(jsonString: string): SafeParseResult<ResponseBodyNumber, SDKValidationError>;
/** @internal */
export declare const String$inboundSchema: z.ZodType<String, z.ZodTypeDef, unknown>;
export declare function stringFromJSON(jsonString: string): SafeParseResult<String, SDKValidationError>;
/** @internal */
export declare const InvokeEvalResponseBody$inboundSchema: z.ZodType<InvokeEvalResponseBody, z.ZodTypeDef, unknown>;
export declare function invokeEvalResponseBodyFromJSON(jsonString: string): SafeParseResult<InvokeEvalResponseBody, SDKValidationError>;
//# sourceMappingURL=invokeeval.d.ts.map