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 runLocalEvaluations<T extends DataStructure | undefined>(evaluators: (LocalEvaluatorType<T> | CombinedLocalEvaluatorType<T, Record<string, PassFailCriteriaType>>)[], dataEntry: Data<T>, processedData: {
    output: 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): (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>;
