import type { TestCase, TestCaseWithPlugin } from '../../types/index';
import type { Strategy } from './types';
/**
 * Adds layer test cases by composing strategies in order.
 *
 * When an attack provider (hydra, crescendo, etc.) is encountered in the steps,
 * the remaining steps become per-turn transforms that are applied to each turn's
 * output before sending to the target.
 *
 * @example
 * ```yaml
 * # Regular layer composition (pre-eval transforms)
 * strategies:
 *   - id: layer
 *     config:
 *       steps: [jailbreak, base64]
 *
 * # Attack provider with per-turn transforms
 * strategies:
 *   - id: layer
 *     config:
 *       steps: [hydra, audio]  # audio applied to each Hydra turn
 *
 * # Mixed: pre-eval + attack provider + per-turn
 * strategies:
 *   - id: layer
 *     config:
 *       steps: [jailbreak, hydra, audio]
 *       # jailbreak applied to initial test cases
 *       # audio applied to each Hydra turn
 * ```
 */
export declare function addLayerTestCases(testCases: TestCaseWithPlugin[], injectVar: string, config: Record<string, unknown>, strategies: Strategy[], loadStrategy: (strategyPath: string) => Promise<Strategy>): Promise<TestCase[]>;
//# sourceMappingURL=layer.d.ts.map