import { AiPlugin, AiRequestContext, ProviderOptionsMap } from "../../types-Bj-rFQ8G.mjs";
import { anthropic } from "@ai-sdk/anthropic";
import { google } from "@ai-sdk/google";
import { openai } from "@ai-sdk/openai";
import { ToolSet } from "ai";

//#region src/core/plugins/built-in/logging.d.ts
interface LoggingConfig {
  level?: 'debug' | 'info' | 'warn' | 'error';
  logParams?: boolean;
  logResult?: boolean;
  logPerformance?: boolean;
  logger?: (level: string, message: string, data?: any) => void;
}
/**
 * 创建日志插件
 */
declare function createLoggingPlugin(config?: LoggingConfig): AiPlugin;
//#endregion
//#region src/core/plugins/built-in/toolUsePlugin/type.d.ts
/**
 * 解析结果类型
 * 表示从AI响应中解析出的工具使用意图
 */
interface ToolUseResult {
  id: string;
  toolName: string;
  arguments: any;
  status: 'pending' | 'invoking' | 'done' | 'error';
}
interface BaseToolUsePluginConfig {
  enabled?: boolean;
}
interface PromptToolUseConfig extends BaseToolUsePluginConfig {
  buildSystemPrompt?: (userSystemPrompt: string, tools: ToolSet) => string;
  parseToolUse?: (content: string, tools: ToolSet) => ToolUseResult[];
  createSystemMessage?: (systemPrompt: string, originalParams: any, context: AiRequestContext) => string | null;
}
/**
 * 扩展的 AI 请求上下文，支持 MCP 工具存储
 */
interface ToolUseRequestContext extends AiRequestContext {
  mcpTools: ToolSet;
}
//#endregion
//#region src/core/plugins/built-in/toolUsePlugin/promptToolUsePlugin.d.ts
declare const createPromptToolUsePlugin: (config?: PromptToolUseConfig) => AiPlugin;
//#endregion
//#region src/core/plugins/built-in/webSearchPlugin/helper.d.ts
/**
 * 从 AI SDK 的工具函数中提取参数类型，以确保类型安全。
 */
type OpenAISearchConfig = Parameters<typeof openai.tools.webSearchPreview>[0];
type AnthropicSearchConfig = Parameters<typeof anthropic.tools.webSearch_20250305>[0];
type GoogleSearchConfig = Parameters<typeof google.tools.googleSearch>[0];
/**
 * 插件初始化时接收的完整配置对象
 *
 * 其结构与 ProviderOptions 保持一致，方便上游统一管理配置
 */
interface WebSearchPluginConfig {
  openai?: OpenAISearchConfig;
  anthropic?: AnthropicSearchConfig;
  xai?: ProviderOptionsMap['xai']['searchParameters'];
  google?: GoogleSearchConfig;
  'google-vertex'?: GoogleSearchConfig;
}
/**
 * 插件的默认配置
 */
//#endregion
//#region src/core/plugins/built-in/webSearchPlugin/index.d.ts
/**
 * 网络搜索插件
 *
 * @param config - 在插件初始化时传入的静态配置
 */
declare const webSearchPlugin: (config?: WebSearchPluginConfig) => AiPlugin;
//#endregion
//#region src/core/plugins/built-in/index.d.ts
/**
 * 内置插件命名空间
 * 所有内置插件都以 'built-in:' 为前缀
 */
declare const BUILT_IN_PLUGIN_PREFIX = "built-in:";
//#endregion
export { BUILT_IN_PLUGIN_PREFIX, type PromptToolUseConfig, type ToolUseRequestContext, type ToolUseResult, createLoggingPlugin, createPromptToolUsePlugin, webSearchPlugin };