/**
 * MCP Ecosystem - Main Export
 * Universal AI Development Platform with Extensible Plugin Architecture
 * Implementation based on research blueprint
 *
 * Enhanced in Phase 8.39.0 with:
 * - MCPServerBase - Abstract base class for creating MCP servers
 * - Tool Annotations - Enhanced tool hints and metadata
 * - Elicitation Protocol - Interactive tool input during execution
 * - Multi-Server Manager - Load balancing and coordination
 * - Enhanced Tool Discovery - Advanced search and filtering
 */
import type { McpMetadata } from "../types/mcpTypes.js";
export type { AuthorizationUrlResult, HTTPRetryConfig, MCPOAuthConfig, OAuthClientInformation, OAuthTokens, RateLimitConfig, TokenExchangeRequest, TokenStorage, } from "../types/mcpTypes.js";
export { mcpLogger } from "../utils/logger.js";
export { createMCPServer, getServerInfo, validateServerTools, validateTool, } from "./factory.js";
export { calculateExpiresAt, createOAuthProviderFromConfig, FileTokenStorage, InMemoryTokenStorage, isTokenExpired, NeuroLinkOAuthProvider, } from "./auth/index.js";
export { DEFAULT_RATE_LIMIT_CONFIG, globalRateLimiterManager, HTTPRateLimiter, RateLimiterManager, } from "./httpRateLimiter.js";
export { DEFAULT_HTTP_RETRY_CONFIG, isRetryableHTTPError, isRetryableStatusCode, withHTTPRetry, } from "./httpRetryHandler.js";
export { CircuitBreakerManager, globalCircuitBreakerManager, MCPCircuitBreaker, CircuitBreakerOpenError, } from "./mcpCircuitBreaker.js";
export { MCPToolRegistry } from "./toolRegistry.js";
export { ExternalServerManager } from "./externalServerManager.js";
export { MCPClientFactory } from "./mcpClientFactory.js";
export type { ExposableAgent, ExposableWorkflow, ExposureOptions, ExposureResult, } from "./agentExposure.js";
export { AgentExposureManager, exposeAgentAsTool, exposeAgentsAsTools, exposeWorkflowAsTool, exposeWorkflowsAsTools, globalAgentExposureManager, } from "./agentExposure.js";
export type { ConfirmationElicitation, Elicitation, ElicitationContext, ElicitationHandler, ElicitationManagerConfig, ElicitationRequest, ElicitationResponse, ElicitationType, FileElicitation, FormElicitation, FormField, MultiSelectElicitation, SecretElicitation, SelectElicitation, SelectOption, TextElicitation, } from "./elicitation/index.js";
export { ElicitationManager, globalElicitationManager, } from "./elicitation/index.js";
export type { ElicitationCancelMessage, ElicitationCancelParams, ElicitationProtocolAdapterConfig, ElicitationProtocolHandler, ElicitationProtocolMessage, ElicitationProtocolMessageType, ElicitationProtocolPayload, ElicitationRequestMessage, ElicitationRequestParams, ElicitationResponseMessage, ElicitationResponseParams, } from "./elicitationProtocol.js";
export { createConfirmationRequest, createElicitationCancel, createElicitationRequest, createElicitationResponse, createFormRequest, createSelectRequest, createTextInputRequest, ElicitationProtocolAdapter, elicitationResponseToProtocol, globalElicitationProtocol, isElicitationProtocolMessage, protocolMessageToElicitation, } from "./elicitationProtocol.js";
export type { CompatibilityCheckResult, EnhancedToolInfo, ToolSearchCriteria, ToolSearchResult, } from "./enhancedToolDiscovery.js";
export { EnhancedToolDiscovery } from "./enhancedToolDiscovery.js";
export type { MCPRegistryClientConfig, RegistryConfig, RegistryEntry, RegistrySearchOptions, RegistrySearchResult, RegistrySourceType, } from "./mcpRegistryClient.js";
export { getAllWellKnownServers, getWellKnownServer, globalMCPRegistryClient, MCPRegistryClient, } from "./mcpRegistryClient.js";
export type { MCPServerBaseConfig, MCPServerEvents, MCPServerTool, MCPToolAnnotations, } from "./mcpServerBase.js";
export { MCPServerBase } from "./mcpServerBase.js";
export type { LoadBalancingStrategy, MultiServerManagerConfig, ServerGroup, ServerWeight, UnifiedTool, } from "./multiServerManager.js";
export { globalMultiServerManager, MultiServerManager, } from "./multiServerManager.js";
export type { MCPPrompt, MCPResource, PromptGenerator, PromptMessage, PromptResult, RegisteredPrompt, RegisteredResource, ResourceContent, ResourceReader, ResourceSubscriptionCallback, ServerCapabilitiesConfig, } from "./serverCapabilities.js";
export { createJsonResource, createPrompt, createTextResource, ServerCapabilitiesManager, } from "./serverCapabilities.js";
export { createAnnotatedTool, filterToolsByAnnotations, getAnnotationSummary, getToolSafetyLevel, inferAnnotations, isSafeToRetry, mergeAnnotations, requiresConfirmation, validateAnnotations, } from "./toolAnnotations.js";
export type { MCPProtocolTool, NeuroLinkTool, ToolConverterOptions, } from "./toolConverter.js";
export { batchConvertToMCP, batchConvertToNeuroLink, createToolFromFunction, mcpProtocolToolToServerTool, mcpToolToNeuroLink, neuroLinkToolToMCP, sanitizeToolName, serverToolToMCPProtocol, TOOL_COMPATIBILITY, validateToolName, } from "./toolConverter.js";
export type { EnhancedExecutionContext, ToolMiddleware, ToolWrapperOptions, } from "./toolIntegration.js";
export { confirmationMiddleware, createElicitationContext, createRetryMiddleware, createTimeoutMiddleware, createToolMiddlewareChain, globalToolIntegrationManager, loggingMiddleware, ToolIntegrationManager, validationMiddleware, wrapToolsWithElicitation, wrapToolWithElicitation, } from "./toolIntegration.js";
export type { BatchConfig, BatchExecutor, BatcherEvents, BatchResult, } from "./batching/index.js";
export { createRequestBatcher, createToolCallBatcher, DEFAULT_BATCH_CONFIG, RequestBatcher, ToolCallBatcher, } from "./batching/index.js";
export type { CacheConfig, CacheEvents, CacheStats, CacheStrategy, } from "./caching/index.js";
export { createToolCache, createToolResultCache, DEFAULT_CACHE_CONFIG, ToolCache, ToolResultCache, } from "./caching/index.js";
export type { AffinityRule, CategoryMapping, MCPTool, RoutingDecision, RoutingStrategy, ServerWeight as RouterServerWeight, ToolRouterConfig, ToolRouterEvents, } from "./routing/index.js";
export { createToolRouter, DEFAULT_ROUTER_CONFIG, ToolRouter, } from "./routing/index.js";
/**
 * Initialize the MCP ecosystem - simplified
 */
export declare function initializeMCPEcosystem(): Promise<void>;
/**
 * List available MCPs - simplified
 */
export declare function listMCPs(): Promise<McpMetadata[]>;
/**
 * Execute an MCP operation - simplified
 */
export declare function executeMCP<T = unknown>(_name: string, _config: unknown, _args: unknown, _context?: {
    sessionId?: string;
    userId?: string;
}): Promise<T>;
/**
 * Get MCP ecosystem statistics - simplified
 */
export declare function getMCPStats(): Promise<{
    initialized: boolean;
    pluginsDiscovered: number;
    pluginsBySource: Record<string, number>;
    availablePlugins: string[];
}>;
