/**
 * pipeline/degradations.ts
 *
 * Programmatic code degradation strategies for sensitivity testing.
 *
 * Each strategy takes a "good" reference solution (string) and returns a
 * "bad" version that should score lower on a specific dimension:
 *
 * - Task Completion: remove key functional sections
 * - Code Correctness: introduce anti-patterns and deprecated APIs
 * - Doc Coverage: strip documentation references, add hallucinated details
 *
 * These are deterministic, pure functions — no randomness, no side effects.
 *
 * @see docs/archive/exec-plans/grader-reliability.md — Phase 4
 */
/** A degradation targeting a specific scoring dimension */
export interface Degradation {
    /** Apply the degradation to source code */
    apply: (source: string) => string;
    /** Human-readable description of what this degradation does */
    description: string;
    /** Which dimension should score lower after degradation */
    targetDimension: "codeCorrectness" | "docCoverage" | "taskCompletion";
}
/** Result of applying a degradation to a reference solution */
export interface DegradedPair {
    /** The degradation that was applied */
    degradation: Degradation;
    /** The degraded ("bad") version */
    degraded: string;
    /** The original ("good") reference solution */
    original: string;
    /** Reference solution file path (relative) */
    sourcePath: string;
}
/**
 * Remove the bottom half of the code (functions, exports, etc).
 * A response missing half its functionality should score lower on Task Completion.
 */
export declare const removeBottomHalf: Degradation;
/**
 * Remove all export statements and exported functions.
 * Missing exports = incomplete API surface → lower Task Completion.
 */
export declare const removeExports: Degradation;
/**
 * Replace function bodies with TODO comments.
 * Skeleton code that doesn't actually implement anything.
 */
export declare const stubFunctions: Degradation;
/**
 * Replace modern API calls with deprecated/incorrect patterns.
 * Targets Sanity-specific patterns that the grader should catch.
 */
export declare const introduceDeprecatedAPIs: Degradation;
/**
 * Introduce common GROQ syntax errors.
 * Invalid queries that look plausible but wouldn't work.
 */
export declare const introduceGroqErrors: Degradation;
/**
 * Remove all TypeScript types and use any everywhere.
 * Technically works but is an anti-pattern.
 */
export declare const removeTypes: Degradation;
/**
 * Remove all comments and documentation.
 * The response shows no evidence of using documentation.
 */
export declare const stripComments: Degradation;
/**
 * Add hallucinated API calls and made-up configuration options.
 * Response looks confident but uses APIs that don't exist.
 */
export declare const addHallucinations: Degradation;
/**
 * Replace correct import paths with plausible but wrong ones.
 * Shows the response was guessing at the API surface.
 */
export declare const wrongImports: Degradation;
/** All available degradation strategies, grouped by target dimension */
export declare const DEGRADATION_STRATEGIES: Degradation[];
/** Get degradation strategies targeting a specific dimension */
export declare function getStrategiesForDimension(dimension: "codeCorrectness" | "docCoverage" | "taskCompletion"): Degradation[];
