/**
 * Assertion type mapper — maps AILF assertion types to Promptfoo assertion types.
 *
 * AILF assertions have two flavors:
 * 1. Templated assertions (`type: "llm-rubric"` with `template` + `criteria`)
 *    → resolved into Promptfoo's `llm-rubric` with a fully assembled rubric prompt
 * 2. Value assertions (any other `type` with a `value`)
 *    → passed through to Promptfoo mostly as-is
 *
 * This module handles the mapping for both and validates mode compatibility
 * (e.g., `tool-called` is only valid for agent-harness/mcp-server modes). A
 * stray assertion `weight` is dropped rather than passed through — dimension
 * profiles are the sole scoring weight axis (D0083).
 *
 * @see docs/design-docs/architecture-overhaul/scoring-rubrics-assertions.md
 * @see docs/archive/exec-plans/architecture-overhaul/phase-2-config-compiler.md
 */
import type { GeneralizedAssertionDefinition } from "../../_vendor/ailf-core/index.d.ts";
import type { EvalMode } from "../../_vendor/ailf-shared/index.d.ts";
/** A Promptfoo-compatible assertion object */
export interface PromptfooAssertion {
    type: string;
    value?: unknown;
    /** Promptfoo-specific: provider for model-graded assertions */
    provider?: string;
    /** Promptfoo-specific: rubric prompt text */
    rubricPrompt?: string;
    /** Promptfoo-specific: threshold for similarity */
    threshold?: number;
    /** Additional properties passed through */
    [key: string]: unknown;
}
/** Options for mapping assertions */
export interface AssertionMapperOptions {
    /** Evaluation mode — used for compatibility checking */
    mode?: EvalMode;
    /** Default grader provider (for LLM-graded assertions) */
    graderProvider?: string;
}
/**
 * Map an array of AILF assertions to Promptfoo assertions.
 *
 * @param assertions - AILF assertion definitions
 * @param options - Mapper options
 * @returns Mapped Promptfoo assertions and any warnings
 */
export declare function mapAssertions(assertions: GeneralizedAssertionDefinition[], options?: AssertionMapperOptions): {
    mapped: PromptfooAssertion[];
    warnings: string[];
};
/**
 * Check if an assertion type is valid.
 */
export declare function isValidAssertionType(type: string): boolean;
/**
 * Check if an assertion type is compatible with a given mode.
 */
export declare function isAssertionCompatibleWithMode(type: string, mode: EvalMode): boolean;
