import type { ApiProvider, EvaluateOptions, EvaluateSummary, NunjucksFilterMap, Prompt, TestSuite } from './types';
export declare const DEFAULT_MAX_CONCURRENCY = 4;
/**
 * Validates if a given prompt is allowed based on the provided list of allowed
 * prompt labels. Providers can be configured with a `prompts` attribute, which
 * corresponds to an array of prompt labels. Labels can either refer to a group
 * (for example from a file) or to individual prompts. If the attribute is
 * present, this function validates that the prompt labels fit the matching
 * criteria of the provider. Examples:
 *
 * - `prompts: ['examplePrompt']` matches `examplePrompt` exactly
 * - `prompts: ['exampleGroup:*']` matches any prompt that starts with `exampleGroup:`
 *
 * If no `prompts` attribute is present, all prompts are allowed by default.
 *
 * @param prompt - The prompt object to check.
 * @param allowedPrompts - The list of allowed prompt labels.
 * @returns Returns true if the prompt is allowed, false otherwise.
 */
export declare function isAllowedPrompt(prompt: Prompt, allowedPrompts: string[] | undefined): boolean;
export declare function generateVarCombinations(vars: Record<string, string | string[] | any>): Record<string, string | any[]>[];
export declare function resolveVariables(variables: Record<string, string | object>): Record<string, string | object>;
export declare function renderPrompt(prompt: Prompt, vars: Record<string, string | object>, nunjucksFilters?: NunjucksFilterMap, provider?: ApiProvider): Promise<string>;
export declare function evaluate(testSuite: TestSuite, options: EvaluateOptions): Promise<EvaluateSummary>;
//# sourceMappingURL=evaluator.d.ts.map