import { MaximTestRunAPI } from "../apis/testRun";
import type { Data, DataStructure } from "../models/dataset";
import type { CombinedLocalEvaluatorType, LocalEvaluationResult, LocalEvaluatorType, PassFailCriteriaType } from "../models/evaluator";
import type { TestRunConfig, YieldedOutput } from "../models/testRun";
export declare function runOutputFunction<T extends DataStructure | undefined>(outputFunction: NonNullable<TestRunConfig<T>["outputFunction"]>, dataEntry: Data<T>): Promise<ReturnType<NonNullable<TestRunConfig<T>["outputFunction"]>>>;
export declare function runOutputFunctionWithTracing<T extends DataStructure | undefined>(outputFunction: NonNullable<TestRunConfig<T>["outputFunctionWithTracing"]>, dataEntry: Data<T>, traceId: string): Promise<ReturnType<NonNullable<TestRunConfig<T>["outputFunctionWithTracing"]>>>;
/**
 * Runs local evaluations on the data entry.
 * @param evaluators - The evaluators to run
 * @param dataEntry - The data entry to evaluate
 * @param output - The output of the run
 * @param contextToEvaluate - The context to evaluate
 * @returns The results of the evaluations
 */
export declare function runLocalEvaluations<T extends DataStructure | undefined>(evaluators: (LocalEvaluatorType<T> | CombinedLocalEvaluatorType<T, Record<string, PassFailCriteriaType>>)[], dataEntry: Data<T>, output: YieldedOutput & Record<string, string>, contextToEvaluate?: string | string[]): Promise<LocalEvaluationResult[]>;
export declare function workflowIdOutputFunctionClosure<T extends DataStructure | undefined>(workflowId: string, TestRunAPIService: MaximTestRunAPI, contextToEvaluate?: string): (data: Data<T>) => Promise<YieldedOutput>;
export declare function promptVersionIdOutputFunctionClosure<T extends DataStructure | undefined>(promptVersionId: string, input: string, TestRunAPIService: MaximTestRunAPI, contextToEvaluate?: string, simulationConfig?: TestRunConfig["simulationConfig"]): (data: Data<T>) => Promise<YieldedOutput>;
export declare function promptChainVersionIdOutputFunctionClosure<T extends DataStructure | undefined>(promptChainVersionId: string, input: string, TestRunAPIService: MaximTestRunAPI, contextToEvaluate?: string): (data: Data<T>) => Promise<YieldedOutput>;
export declare function simulationPromptVersionIdOutputFunctionClosure<T extends DataStructure | undefined>(testRunId: string, promptVersionId: string, workspaceId: string, scenario: string | undefined, TestRunAPIService: MaximTestRunAPI, simulationConfig: NonNullable<TestRunConfig<T>["simulationConfig"]>, contextToEvaluate: string | string[] | undefined, datasetEntryId: string | undefined, input: string | undefined, expectedSteps: string | undefined, timeoutInMinutes?: number): (data: Data<T>) => Promise<YieldedOutput>;
export declare function simulationWorkflowIdOutputFunctionClosure<T extends DataStructure | undefined>(testRunId: string, workflowId: string, workspaceId: string, scenario: string | undefined, TestRunAPIService: MaximTestRunAPI, simulationConfig: NonNullable<TestRunConfig<T>["simulationConfig"]>, contextToEvaluate: string | string[] | undefined, datasetEntryId: string | undefined, input: string | undefined, expectedSteps: string | undefined, timeoutInMinutes?: number): (data: Data<T>) => Promise<YieldedOutput>;
export declare function simulationYieldsOutputFunctionClosure<T extends DataStructure | undefined>(testRunId: string, workspaceId: string, simulationConfig: NonNullable<TestRunConfig<T>["simulationConfig"]>, outputFunction: NonNullable<TestRunConfig<T>["outputFunction"]>, TestRunAPIService: MaximTestRunAPI, datasetEntryId: string | undefined, input: string | undefined, scenario: string | undefined, expectedSteps: string | undefined, contextToEvaluate: string | string[] | undefined, timeoutInMinutes: number | undefined, logger: {
    info: (message: string) => void;
}): (data: Data<T>) => Promise<YieldedOutput>;
