import { type ApiProvider, type CallApiContextParams, type CallApiOptionsParams, type GuardrailResponse, type RedteamFileConfig, type TokenUsage } from '../../types';
declare class RedteamProviderManager {
    private provider;
    private jsonOnlyProvider;
    clearProvider(): void;
    setProvider(provider: RedteamFileConfig['provider']): Promise<void>;
    getProvider({ provider, jsonOnly, preferSmallModel, }: {
        provider?: RedteamFileConfig['provider'];
        jsonOnly?: boolean;
        preferSmallModel?: boolean;
    }): Promise<ApiProvider>;
}
export declare const redteamProviderManager: RedteamProviderManager;
export type TargetResponse = {
    output: string;
    error?: string;
    sessionId?: string;
    tokenUsage?: TokenUsage;
    guardrails?: GuardrailResponse;
};
/**
 * Gets the response from the target provider for a given prompt.
 * @param targetProvider - The API provider to get the response from.
 * @param targetPrompt - The prompt to send to the target provider.
 * @returns A promise that resolves to the target provider's response as an object.
 */
export declare function getTargetResponse(targetProvider: ApiProvider, targetPrompt: string, context?: CallApiContextParams, options?: CallApiOptionsParams): Promise<TargetResponse>;
export interface Message {
    role: 'user' | 'assistant' | 'system';
    content: string;
}
export declare const getLastMessageContent: (messages: Message[], role: Message["role"]) => string | undefined;
export declare function checkPenalizedPhrases(output: string): boolean;
export {};
//# sourceMappingURL=shared.d.ts.map