import type { Connection } from '@salesforce/core'; import { type IConnectionFacade } from '../../adapters/connection-facade.js'; import { type ISoqlQueryAdapter } from '../../adapters/soql/soql-query-adapter.js'; import { type IRestApiAdapter } from '../../adapters/rest/rest-api-adapter.js'; import { type IToolingApiAdapter } from '../../adapters/tooling/tooling-api-adapter.js'; /** * Session-scoped adapter set shared across MCP tool invocations. * * Constructed once in `createMcpServer()` and closed over by all tool handlers. * This allows LRU caches (e.g., RestApiAdapter's describe cache) to persist * across paginated calls within a single MCP session. */ export type McpAdapters = { /** Raw Salesforce connection (for handlers that need direct access, e.g., SFDMUService) */ readonly connection: Connection; /** Shared connection facade (for services that need identity, instanceUrl, etc.) */ readonly facade: IConnectionFacade; readonly soql: ISoqlQueryAdapter; readonly rest: IRestApiAdapter; readonly tooling: IToolingApiAdapter; }; /** * MCP Server configuration. */ export type McpServerConfig = { /** Server name for identification */ readonly name: string; /** Server version (matches plugin version) */ readonly version: string; /** Target org connection string */ readonly targetOrg: string; /** Optional API version override */ readonly apiVersion?: string; /** Enable debug logging */ readonly debug?: boolean; }; /** * Creates default MCP server configuration. * * @param targetOrg - Target Salesforce org alias or username * @param apiVersion - Optional API version override * @param debug - Enable debug logging * @returns MCP server configuration */ export declare function createMcpConfig(targetOrg: string, apiVersion?: string, debug?: boolean): McpServerConfig; /** * Creates the MCP adapter stack from a Salesforce connection. * * Single source of truth for MCP adapter instantiation. Used by both * `createMcpServer()` (session-scoped) and `invokeTool()` (per-call). * * @param connection - Raw Salesforce connection * @returns MCP adapter set with connection, facade, and all three adapters */ export declare function createMcpAdapters(connection: Connection): McpAdapters;