import { AgentConfig } from "../agent-types.js";
import "../Agent.js";
import { CredentialStuffer, FullExecutionContext, McpTool } from "@inkeep/agents-core";

//#region src/domains/run/agents/services/AgentMcpManager.d.ts
type McpToolSet = {
  tools: Record<string, any>;
  toolPolicies: Record<string, any>;
  mcpServerId: string;
  mcpServerName: string;
  serverInstructions?: string;
};
declare class AgentMcpManager {
  private config;
  private executionContext;
  private credentialStuffer;
  private getConversationId;
  private getStreamRequestId;
  private getRelationshipIdForTool;
  private mcpClientCache;
  private mcpConnectionLocks;
  constructor(config: AgentConfig, executionContext: FullExecutionContext, credentialStuffer: CredentialStuffer | undefined, getConversationId: () => string | undefined, getStreamRequestId: () => string | undefined, getRelationshipIdForTool: (toolName: string, toolType: string) => string | undefined);
  getToolSet(tool: McpTool): Promise<McpToolSet>;
  private reportEmptyToolSet;
  private convertToMCPToolConfig;
  private createMcpConnection;
  private static errMsg;
  private buildOverriddenTool;
  private applyToolOverrides;
  cleanup(): Promise<void>;
}
//#endregion
export { AgentMcpManager, McpToolSet };