/**
 * MCP-specific assertion types — ergonomic assertions for MCP server testing.
 *
 * Each assertion type compiles down to a Promptfoo `javascript` assertion
 * with the appropriate validation logic. The developer writes:
 *
 * ```typescript
 * assertions: [
 *   { type: "tool-called", value: "getDocument" },
 *   { type: "tool-input-matches", value: { documentId: "doc-123" } },
 *   { type: "tool-output-matches", value: { title: "Hello" } },
 *   { type: "tool-input-schema", value: { type: "object", required: ["query"] } },
 *   { type: "tool-output-schema", value: { type: "array", minItems: 1 } },
 *   { type: "error-returned", value: { code: -32602 } },
 * ]
 * ```
 *
 * `tool-input-matches` / `tool-output-matches` test partial value-equality
 * (does a recorded call contain these exact key/value pairs?). The
 * `*-schema` matchers test shape/type conformance against a JSON Schema
 * (is `query` a string? is the result a non-empty array?) — see D0079.
 *
 * The compiler transforms these into Promptfoo-compatible `javascript`
 * assertions that inspect the tool call trace in the evaluation output.
 *
 * @see docs/archive/exec-plans/architecture-overhaul/phase-3-mcp-server-mode.md
 */
import type { PromptfooAssertion } from "../../assertion-mapper.js";
import type { MCPAssertionContext } from "./types.js";
/** An AILF assertion definition — accepts both core and generalized types */
interface AssertionInput {
    type: string;
    value?: unknown;
    /** Allow additional properties from generalized assertions */
    [key: string]: unknown;
}
/**
 * Build MCP-specific assertions from task assertion definitions.
 *
 * Handles both MCP-specific types (tool-called, tool-input-matches, etc.)
 * and standard assertion types (contains, llm-rubric, etc.) which are
 * passed through unchanged.
 */
export declare function buildMCPAssertions(assertions: AssertionInput[], context: MCPAssertionContext): {
    assertions: PromptfooAssertion[];
    warnings: string[];
};
export {};
