import { Decimal } from 'decimal.js';
import type { ProviderResponse, TestCase, TestSuite, VarMapping } from '../types';
interface SynthesizeOptions {
    instructions?: string;
    numPersonas?: number;
    numTestCasesPerPersona?: number;
    prompts: string[];
    provider?: string;
    workspaceId?: string;
    tests: TestCase[];
    apiCall?: boolean;
    loggingParams?: Record<string, any>;
    tokenUsages?: {
        cost: Decimal;
        tokenUsage: {
            prompt: Decimal;
            completion: Decimal;
            total: Decimal;
            cached: Decimal;
        };
    };
}
/** Normalize provider output or throw a user-actionable synthesis error. */
export declare function getProviderTextOutput(resp: ProviderResponse, stepLabel: string): string;
export declare function generatePersonasPrompt(prompts: string[], numPersonas: number): string;
export declare function testCasesPrompt(prompts: string[], persona: string, tests: TestCase[], numTestCasesPerPersona: number, variables: string[], instructions?: string): string;
export declare function synthesize({ tokenUsages, prompts, instructions, tests, numPersonas, numTestCasesPerPersona, provider, apiCall, workspaceId, }: SynthesizeOptions): Promise<VarMapping[] | {
    personas: string[];
    testCaseVars: VarMapping[];
}>;
export declare function synthesizeFromTestSuite(testSuite: TestSuite, options: Partial<SynthesizeOptions>, tokenUsages?: {
    cost: Decimal;
    tokenUsage: {
        prompt: Decimal;
        completion: Decimal;
        total: Decimal;
        cached: Decimal;
    };
}): Promise<VarMapping[] | {
    personas: string[];
    testCaseVars: VarMapping[];
}>;
export {};
//# sourceMappingURL=synthesis.d.ts.map