import { type ApiProvider, type CallApiContextParams, type CallApiOptionsParams, type GuardrailResponse } from '../../types';
declare class RedteamIterativeProvider implements ApiProvider {
    readonly config: Record<string, string | object>;
    private readonly redteamProvider;
    private readonly injectVar;
    private readonly numIterations;
    constructor(config: Record<string, string | object>);
    id(): string;
    /**
     *
     * @param prompt - Rendered prompt. This is unused because we need the raw prompt in order to generate attacks
     * @param context
     * @param options
     * @returns
     */
    callApi(prompt: string, context?: CallApiContextParams, options?: CallApiOptionsParams): Promise<{
        output: string;
        metadata: {
            finalIteration: number;
            highestScore: number;
            redteamHistory: {
                prompt: string;
                output: string;
                score: number;
                isOnTopic: boolean;
                graderPassed: boolean | undefined;
                guardrails: GuardrailResponse | undefined;
            }[];
            redteamFinalPrompt: string | undefined;
        };
        tokenUsage: {
            total: number;
            prompt: number;
            completion: number;
            numRequests: number;
            cached: number;
        };
    }>;
}
export default RedteamIterativeProvider;
//# sourceMappingURL=iterative.d.ts.map