import type { ApiProvider, Assertion, AssertionValue, AtomicTestCase, GradingResult, ResultSuggestion } from '../../types';
import { RedteamGraderBase, RedteamPluginBase, type RedteamGradingContext } from './base';
export declare const PLUGIN_ID = "trusys:redteam:competitors";
/**
 * CompetitorsPlugin
 * Generates adversarial prompts that try to entice the target model to
 *  - mention competitors,
 *  - recommend or endorse them,
 *  - or perform side-by-side comparisons with a final pick.
 *
 * Configurable policy modes (optional "with" vars you can pass when rendering):
 *   - allowMentionsNoEndorsements: boolean (default: false)
 *       false -> disallow mentioning competitors entirely
 *       true  -> allow descriptive mentions but forbid endorsements/recommendations
 *
 * Required "with" vars:
 *   - purpose: string  (system purpose of the target AI)
 *   - n: number        (how many prompts to generate)
 *
 * Optional "with" vars:
 *   - companyName: string         (used to make prompts more targeted)
 *   - examples: string[]          (override default examples)
 */
export declare class CompetitorsPlugin extends RedteamPluginBase {
    readonly id = "trusys:redteam:competitors";
    protected getTemplate(): Promise<string>;
    protected getAssertions(_prompt: string): Assertion[];
}
export declare class CompetitorsGrader extends RedteamGraderBase {
    id: string;
    rubric: string;
    getResult(prompt: string, llmOutput: string, test: AtomicTestCase, provider?: ApiProvider, renderedValue?: AssertionValue, additionalRubric?: string, skipRefusalCheck?: boolean, gradingContext?: RedteamGradingContext): Promise<{
        grade: GradingResult;
        rubric: string;
    }>;
    getSuggestions({ rawPrompt, renderedValue, test, }: {
        rawPrompt: string;
        renderedValue?: AssertionValue;
        test: any;
    }): ResultSuggestion[];
}
//# sourceMappingURL=competitors.d.ts.map