import type { BaseMessage, BaseMessageChunk } from "@langchain/core/messages"; export type EvaluatorResult = { key: string; score: number | boolean; comment?: string; metadata?: Record; }; export type SimpleEvaluator = (params: { inputs?: unknown; outputs: unknown; reference_outputs?: unknown; [key: string]: unknown; }) => Promise | EvaluatorResult | EvaluatorResult[]; export type SingleResultScorerReturnType = boolean | number | [boolean | number, string, Record?] | readonly [boolean | number, string, Record?]; export type MultiResultScorerReturnType = { [key: string]: boolean | number | { score: boolean | number; reasoning?: string; }; }; export type ChatCompletionMessage = Record & ({ content: any; role: "user" | "system" | "developer"; id?: string; } | { role: "assistant"; content: any; tool_calls?: any[]; id?: string; } | { role: "tool"; content: any; tool_call_id: string; id?: string; }); export type ChatCompletion = { choices: { message: ChatCompletionMessage; }[]; }; export type FewShotExample = { inputs: unknown; outputs: unknown; score: number | boolean; reasoning?: string; }; export interface ChatCompletionsClient { create(params: Record): Promise; } export interface ModelChatClient { completions: ChatCompletionsClient; } export interface ModelClient { chat: ModelChatClient; } export type Messages = ChatCompletionMessage | BaseMessage | BaseMessageChunk; export type MultiturnSimulationResult = { evaluatorResults: EvaluatorResult[]; trajectory: ChatCompletionMessage[]; };