/**
 * MCP server provider assembly — builds Promptfoo provider configs.
 */
import type { MCPServerTaskDefinition, ModeProviderEntry } from "../../../../_vendor/ailf-core/index.d.ts";
import type { PromptfooProvider } from "../../promptfoo-compiler.js";
/** Default max tool rounds for MCP multi-turn execution */
export declare const DEFAULT_MAX_TOOL_ROUNDS = 5;
/** Provider path relative to eval package dist */
export declare const MCP_PROVIDER_PATH = "file://dist/pipeline/compiler/mode-handlers/mcp-tool-provider/index.js";
/**
 * Build custom MCP tool provider configs — one per model.
 *
 * Each provider uses the custom mcp-tool-provider.ts which implements a
 * multi-turn tool execution loop. The LLM receives a prompt, discovers
 * MCP tools, calls them, gets results, and continues until it produces
 * a final text answer or exhausts maxToolRounds.
 *
 * Config shape passed to the custom provider:
 *   { model, mcpServer: { url, auth, name }, mcpTools, maxToolRounds, temperature, ... }
 */
export declare function buildMCPProvider(task: MCPServerTaskDefinition, models: ModeProviderEntry[], warnings: string[]): PromptfooProvider[];
/**
 * Build the MCP server connection config for the custom provider.
 *
 * Shape: { url?, command?, name?, auth? }
 * The custom mcp-tool-provider.ts uses this to connect to the MCP server.
 */
export declare function buildMCPServerConfig(task: MCPServerTaskDefinition, warnings: string[]): Record<string, unknown>;
