import Eval from '../models/eval';
import type { Vars } from '../types';
import { type EvalWithMetadata, type EvaluateResult, type EvaluateTable, type NunjucksFilterMap, type PromptWithMetadata, type ResultsFile, type TestCase, type TestCasesWithMetadata, type UnifiedConfig, type OutputFile, type CompletedPrompt, type ResultLightweight, type EvaluateSummaryV2 } from '../types';
export declare function writeOutput(outputPath: string, evalRecord: Eval, shareableUrl: string | null): Promise<void>;
export declare function writeMultipleOutputs(outputPaths: string[], evalRecord: Eval, shareableUrl: string | null): Promise<void>;
export declare function readOutput(outputPath: string): Promise<OutputFile>;
/**
 * TODO(ian): Remove this
 * @deprecated Use readLatestResults directly instead.
 */
export declare function getLatestResultsPath(): string;
export declare function writeResultsToDatabase(results: EvaluateSummaryV2, config: Partial<UnifiedConfig>, createdAt?: Date): Promise<string>;
/**
 *
 * @returns Last n evals in descending order.
 */
export declare function listPreviousResults(limit?: number, filterDescription?: string, datasetId?: string): Promise<ResultLightweight[]>;
/**
 * @deprecated Used only for migration to sqlite
 */
export declare function listPreviousResultFilenames_fileSystem(): string[];
/**
 * @deprecated Used only for migration to sqlite
 */
export declare function listPreviousResults_fileSystem(): {
    fileName: string;
    description?: string;
}[];
export declare function filenameToDate(filename: string): Date;
export declare function dateToFilename(date: Date): string;
/**
 * @deprecated Used only for migration to sqlite
 */
export declare function readResult_fileSystem(name: string): {
    id: string;
    result: ResultsFile;
    createdAt: Date;
} | undefined;
export declare function readResult(id: string): Promise<{
    id: string;
    result: ResultsFile;
    createdAt: Date;
} | undefined>;
export declare function updateResult(id: string, newConfig?: Partial<UnifiedConfig>, newTable?: EvaluateTable): Promise<void>;
export declare function getLatestEval(filterDescription?: string): Promise<ResultsFile | undefined>;
export declare function getPromptsWithPredicate(predicate: (result: ResultsFile) => boolean, limit: number): Promise<PromptWithMetadata[]>;
export declare function getPromptsForTestCasesHash(testCasesSha256: string, limit?: number): Promise<PromptWithMetadata[]>;
export declare function getPromptsForTestCases(testCases: TestCase[]): Promise<PromptWithMetadata[]>;
export declare function getTestCasesWithPredicate(predicate: (result: ResultsFile) => boolean, limit: number): Promise<TestCasesWithMetadata[]>;
export declare function getPrompts(limit?: number): Promise<PromptWithMetadata[]>;
export declare function getTestCases(limit?: number): Promise<{
    id: string;
    prompts: {
        id: string;
        prompt: {
            provider: string;
            raw: string;
            label: string;
            function?: ((args_0: {
                vars: Record<string, any>;
                provider?: import("../types").ApiProvider | undefined;
            }, ...args: unknown[]) => Promise<any>) | undefined;
            id?: string | undefined;
            config?: any;
            display?: string | undefined;
            metrics?: {
                cost: number;
                tokenUsage: {
                    cached?: number | undefined;
                    completion?: number | undefined;
                    prompt?: number | undefined;
                    total?: number | undefined;
                    numRequests?: number | undefined;
                };
                score: number;
                testPassCount: number;
                testFailCount: number;
                testErrorCount: number;
                assertPassCount: number;
                assertFailCount: number;
                totalLatencyMs: number;
                namedScores: Record<string, number>;
                namedScoresCount: Record<string, number>;
                redteam?: {
                    pluginPassCount: Record<string, number>;
                    pluginFailCount: Record<string, number>;
                    strategyPassCount: Record<string, number>;
                    strategyFailCount: Record<string, number>;
                } | undefined;
            } | undefined;
        };
        evalId: string;
    }[];
    testCases: string | (string | {
        options?: ({
            prefix?: string | undefined;
            suffix?: string | undefined;
        } & {
            transform?: string | undefined;
            postprocess?: string | undefined;
            transformVars?: string | undefined;
            storeOutputAs?: string | undefined;
        } & {
            provider?: any;
            rubricPrompt?: string | string[] | {
                role: string;
                content: string;
            }[] | undefined;
            factuality?: {
                subset?: number | undefined;
                superset?: number | undefined;
                agree?: number | undefined;
                disagree?: number | undefined;
                differButFactual?: number | undefined;
            } | undefined;
        } & {
            disableVarExpansion?: boolean | undefined;
            disableConversationVar?: boolean | undefined;
            runSerially?: boolean | undefined;
        }) | undefined;
        vars?: Record<string, string | number | boolean | any[] | Record<string, any> | (string | number | boolean)[]> | undefined;
        provider?: string | {
            id?: string | undefined;
            config?: any;
            label?: string | undefined;
            prompts?: string[] | undefined;
            transform?: string | undefined;
            delay?: number | undefined;
            env?: {
                PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
                AI21_API_BASE_URL?: string | undefined;
                AI21_API_KEY?: string | undefined;
                ANTHROPIC_API_KEY?: string | undefined;
                AWS_BEDROCK_REGION?: string | undefined;
                FAL_KEY?: string | undefined;
                GROQ_API_KEY?: string | undefined;
                LOCALAI_BASE_URL?: string | undefined;
                WATSONX_AI_APIKEY?: string | undefined;
                WATSONX_AI_PROJECT_ID?: string | undefined;
                WATSONX_AI_BEARER_TOKEN?: string | undefined;
                WATSONX_AI_AUTH_TYPE?: string | undefined;
                AZURE_CLIENT_SECRET?: string | undefined;
                AZURE_CLIENT_ID?: string | undefined;
                AZURE_TENANT_ID?: string | undefined;
                AZURE_AUTHORITY_HOST?: string | undefined;
                AZURE_TOKEN_SCOPE?: string | undefined;
                AZURE_DEPLOYMENT_NAME?: string | undefined;
                AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_API_BASE_URL?: string | undefined;
                AZURE_OPENAI_API_HOST?: string | undefined;
                AZURE_OPENAI_API_KEY?: string | undefined;
                AZURE_API_BASE_URL?: string | undefined;
                AZURE_API_HOST?: string | undefined;
                AZURE_API_KEY?: string | undefined;
                AZURE_OPENAI_BASE_URL?: string | undefined;
                BAM_API_HOST?: string | undefined;
                BAM_API_KEY?: string | undefined;
                CLOUDFLARE_ACCOUNT_ID?: string | undefined;
                CLOUDFLARE_API_KEY?: string | undefined;
                COHERE_API_KEY?: string | undefined;
                GOOGLE_API_HOST?: string | undefined;
                GOOGLE_API_KEY?: string | undefined;
                MISTRAL_API_BASE_URL?: string | undefined;
                MISTRAL_API_HOST?: string | undefined;
                MISTRAL_API_KEY?: string | undefined;
                OPENAI_API_BASE_URL?: string | undefined;
                OPENAI_API_HOST?: string | undefined;
                OPENAI_API_KEY?: string | undefined;
                OPENAI_BASE_URL?: string | undefined;
                OPENAI_ORGANIZATION?: string | undefined;
                PALM_API_HOST?: string | undefined;
                PALM_API_KEY?: string | undefined;
                REPLICATE_API_KEY?: string | undefined;
                REPLICATE_API_TOKEN?: string | undefined;
                VERTEX_API_HOST?: string | undefined;
                VERTEX_API_KEY?: string | undefined;
                VERTEX_PROJECT_ID?: string | undefined;
                VERTEX_PUBLISHER?: string | undefined;
                VERTEX_REGION?: string | undefined;
                PROMPTFOO_CA_CERT_PATH?: string | undefined;
                PROMPTFOO_INSECURE_SSL?: string | undefined;
            } | undefined;
        } | {
            callApi: import("../types").CallApiFunction;
            id: (...args: unknown[]) => string;
            config?: any;
            label?: string | undefined;
            transform?: string | undefined;
            delay?: number | undefined;
            callEmbeddingApi?: ((args_0: string, ...args: unknown[]) => Promise<import("../types").ProviderEmbeddingResponse>) | undefined;
            callClassificationApi?: ((args_0: string, ...args: unknown[]) => Promise<import("../types").ProviderClassificationResponse>) | undefined;
        } | undefined;
        metadata?: (Record<string, any> & {
            pluginConfig?: import("../types").PluginConfig | undefined;
            strategyConfig?: import("../types").RedteamObjectConfig | undefined;
        }) | undefined;
        description?: string | undefined;
        providerOutput?: string | {} | undefined;
        assert?: ({
            type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "guardrails" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-guardrails" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
            value?: import("../types").AssertionValue | undefined;
            config?: Record<string, any> | undefined;
            provider?: any;
            transform?: string | undefined;
            rubricPrompt?: string | string[] | {
                role: string;
                content: string;
            }[] | undefined;
            threshold?: number | undefined;
            weight?: number | undefined;
            metric?: string | undefined;
        } | {
            type: "assert-set";
            assert: {
                type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "guardrails" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-guardrails" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
                value?: import("../types").AssertionValue | undefined;
                config?: Record<string, any> | undefined;
                provider?: any;
                transform?: string | undefined;
                rubricPrompt?: string | string[] | {
                    role: string;
                    content: string;
                }[] | undefined;
                threshold?: number | undefined;
                weight?: number | undefined;
                metric?: string | undefined;
            }[];
            config?: Record<string, any> | undefined;
            threshold?: number | undefined;
            weight?: number | undefined;
            metric?: string | undefined;
        })[] | undefined;
        threshold?: number | undefined;
    })[];
    recentEvalDate: Date;
    recentEvalId: string;
    count: number;
}[]>;
export declare function getPromptFromHash(hash: string): Promise<PromptWithMetadata | undefined>;
export declare function getDatasetFromHash(hash: string): Promise<{
    id: string;
    prompts: {
        id: string;
        prompt: {
            provider: string;
            raw: string;
            label: string;
            function?: ((args_0: {
                vars: Record<string, any>;
                provider?: import("../types").ApiProvider | undefined;
            }, ...args: unknown[]) => Promise<any>) | undefined;
            id?: string | undefined;
            config?: any;
            display?: string | undefined;
            metrics?: {
                cost: number;
                tokenUsage: {
                    cached?: number | undefined;
                    completion?: number | undefined;
                    prompt?: number | undefined;
                    total?: number | undefined;
                    numRequests?: number | undefined;
                };
                score: number;
                testPassCount: number;
                testFailCount: number;
                testErrorCount: number;
                assertPassCount: number;
                assertFailCount: number;
                totalLatencyMs: number;
                namedScores: Record<string, number>;
                namedScoresCount: Record<string, number>;
                redteam?: {
                    pluginPassCount: Record<string, number>;
                    pluginFailCount: Record<string, number>;
                    strategyPassCount: Record<string, number>;
                    strategyFailCount: Record<string, number>;
                } | undefined;
            } | undefined;
        };
        evalId: string;
    }[];
    testCases: string | (string | {
        options?: ({
            prefix?: string | undefined;
            suffix?: string | undefined;
        } & {
            transform?: string | undefined;
            postprocess?: string | undefined;
            transformVars?: string | undefined;
            storeOutputAs?: string | undefined;
        } & {
            provider?: any;
            rubricPrompt?: string | string[] | {
                role: string;
                content: string;
            }[] | undefined;
            factuality?: {
                subset?: number | undefined;
                superset?: number | undefined;
                agree?: number | undefined;
                disagree?: number | undefined;
                differButFactual?: number | undefined;
            } | undefined;
        } & {
            disableVarExpansion?: boolean | undefined;
            disableConversationVar?: boolean | undefined;
            runSerially?: boolean | undefined;
        }) | undefined;
        vars?: Record<string, string | number | boolean | any[] | Record<string, any> | (string | number | boolean)[]> | undefined;
        provider?: string | {
            id?: string | undefined;
            config?: any;
            label?: string | undefined;
            prompts?: string[] | undefined;
            transform?: string | undefined;
            delay?: number | undefined;
            env?: {
                PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
                AI21_API_BASE_URL?: string | undefined;
                AI21_API_KEY?: string | undefined;
                ANTHROPIC_API_KEY?: string | undefined;
                AWS_BEDROCK_REGION?: string | undefined;
                FAL_KEY?: string | undefined;
                GROQ_API_KEY?: string | undefined;
                LOCALAI_BASE_URL?: string | undefined;
                WATSONX_AI_APIKEY?: string | undefined;
                WATSONX_AI_PROJECT_ID?: string | undefined;
                WATSONX_AI_BEARER_TOKEN?: string | undefined;
                WATSONX_AI_AUTH_TYPE?: string | undefined;
                AZURE_CLIENT_SECRET?: string | undefined;
                AZURE_CLIENT_ID?: string | undefined;
                AZURE_TENANT_ID?: string | undefined;
                AZURE_AUTHORITY_HOST?: string | undefined;
                AZURE_TOKEN_SCOPE?: string | undefined;
                AZURE_DEPLOYMENT_NAME?: string | undefined;
                AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
                AZURE_OPENAI_API_BASE_URL?: string | undefined;
                AZURE_OPENAI_API_HOST?: string | undefined;
                AZURE_OPENAI_API_KEY?: string | undefined;
                AZURE_API_BASE_URL?: string | undefined;
                AZURE_API_HOST?: string | undefined;
                AZURE_API_KEY?: string | undefined;
                AZURE_OPENAI_BASE_URL?: string | undefined;
                BAM_API_HOST?: string | undefined;
                BAM_API_KEY?: string | undefined;
                CLOUDFLARE_ACCOUNT_ID?: string | undefined;
                CLOUDFLARE_API_KEY?: string | undefined;
                COHERE_API_KEY?: string | undefined;
                GOOGLE_API_HOST?: string | undefined;
                GOOGLE_API_KEY?: string | undefined;
                MISTRAL_API_BASE_URL?: string | undefined;
                MISTRAL_API_HOST?: string | undefined;
                MISTRAL_API_KEY?: string | undefined;
                OPENAI_API_BASE_URL?: string | undefined;
                OPENAI_API_HOST?: string | undefined;
                OPENAI_API_KEY?: string | undefined;
                OPENAI_BASE_URL?: string | undefined;
                OPENAI_ORGANIZATION?: string | undefined;
                PALM_API_HOST?: string | undefined;
                PALM_API_KEY?: string | undefined;
                REPLICATE_API_KEY?: string | undefined;
                REPLICATE_API_TOKEN?: string | undefined;
                VERTEX_API_HOST?: string | undefined;
                VERTEX_API_KEY?: string | undefined;
                VERTEX_PROJECT_ID?: string | undefined;
                VERTEX_PUBLISHER?: string | undefined;
                VERTEX_REGION?: string | undefined;
                PROMPTFOO_CA_CERT_PATH?: string | undefined;
                PROMPTFOO_INSECURE_SSL?: string | undefined;
            } | undefined;
        } | {
            callApi: import("../types").CallApiFunction;
            id: (...args: unknown[]) => string;
            config?: any;
            label?: string | undefined;
            transform?: string | undefined;
            delay?: number | undefined;
            callEmbeddingApi?: ((args_0: string, ...args: unknown[]) => Promise<import("../types").ProviderEmbeddingResponse>) | undefined;
            callClassificationApi?: ((args_0: string, ...args: unknown[]) => Promise<import("../types").ProviderClassificationResponse>) | undefined;
        } | undefined;
        metadata?: (Record<string, any> & {
            pluginConfig?: import("../types").PluginConfig | undefined;
            strategyConfig?: import("../types").RedteamObjectConfig | undefined;
        }) | undefined;
        description?: string | undefined;
        providerOutput?: string | {} | undefined;
        assert?: ({
            type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "guardrails" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-guardrails" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
            value?: import("../types").AssertionValue | undefined;
            config?: Record<string, any> | undefined;
            provider?: any;
            transform?: string | undefined;
            rubricPrompt?: string | string[] | {
                role: string;
                content: string;
            }[] | undefined;
            threshold?: number | undefined;
            weight?: number | undefined;
            metric?: string | undefined;
        } | {
            type: "assert-set";
            assert: {
                type: "moderation" | `promptfoo:redteam:${string}` | "cost" | "factuality" | "answer-relevance" | "bleu" | "classifier" | "contains-all" | "contains-any" | "contains-json" | "contains-sql" | "contains-xml" | "contains" | "context-faithfulness" | "context-recall" | "context-relevance" | "equals" | "g-eval" | "guardrails" | "icontains-all" | "icontains-any" | "icontains" | "is-json" | "is-refusal" | "is-sql" | "is-valid-openai-function-call" | "is-valid-openai-tools-call" | "is-xml" | "javascript" | "latency" | "levenshtein" | "llm-rubric" | "model-graded-closedqa" | "model-graded-factuality" | "perplexity-score" | "perplexity" | "python" | "regex" | "rouge-n" | "similar" | "starts-with" | "webhook" | "not-moderation" | "not-cost" | "not-factuality" | "not-answer-relevance" | "not-bleu" | "not-classifier" | "not-contains-all" | "not-contains-any" | "not-contains-json" | "not-contains-sql" | "not-contains-xml" | "not-contains" | "not-context-faithfulness" | "not-context-recall" | "not-context-relevance" | "not-equals" | "not-g-eval" | "not-guardrails" | "not-icontains-all" | "not-icontains-any" | "not-icontains" | "not-is-json" | "not-is-refusal" | "not-is-sql" | "not-is-valid-openai-function-call" | "not-is-valid-openai-tools-call" | "not-is-xml" | "not-javascript" | "not-latency" | "not-levenshtein" | "not-llm-rubric" | "not-model-graded-closedqa" | "not-model-graded-factuality" | "not-perplexity-score" | "not-perplexity" | "not-python" | "not-regex" | "not-rouge-n" | "not-similar" | "not-starts-with" | "not-webhook" | "select-best" | "human";
                value?: import("../types").AssertionValue | undefined;
                config?: Record<string, any> | undefined;
                provider?: any;
                transform?: string | undefined;
                rubricPrompt?: string | string[] | {
                    role: string;
                    content: string;
                }[] | undefined;
                threshold?: number | undefined;
                weight?: number | undefined;
                metric?: string | undefined;
            }[];
            config?: Record<string, any> | undefined;
            threshold?: number | undefined;
            weight?: number | undefined;
            metric?: string | undefined;
        })[] | undefined;
        threshold?: number | undefined;
    })[];
    recentEvalDate: Date;
    recentEvalId: string;
    count: number;
} | undefined>;
export declare function getEvalsWithPredicate(predicate: (result: ResultsFile) => boolean, limit: number): Promise<EvalWithMetadata[]>;
export declare function getEvals(limit?: number): Promise<EvalWithMetadata[]>;
export declare function getEvalFromId(hash: string): Promise<EvalWithMetadata | undefined>;
export declare function deleteEval(evalId: string): Promise<void>;
/**
 * Deletes all evaluations and related records with foreign keys from the database.
 * @async
 * @returns {Promise<void>}
 */
export declare function deleteAllEvals(): Promise<void>;
export declare function readFilters(filters: Record<string, string>, basePath?: string): Promise<NunjucksFilterMap>;
export declare function printBorder(): void;
export declare function setupEnv(envPath: string | undefined): void;
export type StandaloneEval = CompletedPrompt & {
    evalId: string;
    description: string | null;
    datasetId: string | null;
    promptId: string | null;
    isRedteam: boolean;
    createdAt: number;
    pluginFailCount: Record<string, number>;
    pluginPassCount: Record<string, number>;
};
export declare function getStandaloneEvals({ limit, tag, description, }?: {
    limit?: number;
    tag?: {
        key: string;
        value: string;
    };
    description?: string;
}): Promise<StandaloneEval[]>;
export declare function providerToIdentifier(provider: TestCase['provider']): string | undefined;
export declare function varsMatch(vars1: Vars | undefined, vars2: Vars | undefined): boolean;
export declare function resultIsForTestCase(result: EvaluateResult, testCase: TestCase): boolean;
export declare function renderVarsInObject<T>(obj: T, vars?: Record<string, string | object>): T;
/**
 * Parses a file path or glob pattern to extract function names and file extensions.
 * Function names can be specified in the filename like this:
 * prompt.py:myFunction or prompts.js:myFunction.
 * @param basePath - The base path for file resolution.
 * @param promptPath - The path or glob pattern.
 * @returns Parsed details including function name, file extension, and directory status.
 */
export declare function parsePathOrGlob(basePath: string, promptPath: string): {
    extension?: string;
    functionName?: string;
    isPathPattern: boolean;
    filePath: string;
};
/**
 * Loads content from an external file if the input is a file path, otherwise
 * returns the input as-is. Supports Nunjucks templating for file paths.
 *
 * @param filePath - The input to process. Can be a file path string starting with "file://",
 * an array of file paths, or any other type of data.
 * @returns The loaded content if the input was a file path, otherwise the original input.
 * For JSON and YAML files, the content is parsed into an object.
 * For other file types, the raw file content is returned as a string.
 *
 * @throws {Error} If the specified file does not exist.
 */
export declare function maybeLoadFromExternalFile(filePath: string | object | Function | undefined | null): any;
export declare function isRunningUnderNpx(): boolean;
//# sourceMappingURL=index.d.ts.map