/** * @file record-builders.ts * @description Functions that build standard records using factory-created context classes. * * These builders create ToolClassTokenRecord, ResourceClassTokenRecord, and PromptClassTokenRecord * with dynamically created context classes that forward execution to remote MCP servers. */ import type { Prompt, Resource, ResourceTemplate, Tool } from '@frontmcp/protocol'; import { type PromptClassTokenRecord, type ResourceClassTokenRecord, type ResourceTemplateClassTokenRecord, type ToolClassTokenRecord } from '../../common'; import type { McpClientService } from '../mcp-client.service'; /** * Build a ToolClassTokenRecord for a remote tool. * * Uses CLASS_TOKEN kind with a dynamically created context class. * The context class closes over mcpClient, remoteAppId, and the tool name. * * @param remoteTool - The tool definition from the remote MCP server * @param mcpClient - The MCP client service for remote communication * @param remoteAppId - The ID of the remote app * @param namespace - Optional namespace prefix for the tool name */ export declare function buildRemoteToolRecord(remoteTool: Tool, mcpClient: McpClientService, remoteAppId: string, namespace?: string): ToolClassTokenRecord; /** * Build a ResourceClassTokenRecord for a remote resource. * * @param remoteResource - The resource definition from the remote MCP server * @param mcpClient - The MCP client service for remote communication * @param remoteAppId - The ID of the remote app * @param namespace - Optional namespace prefix for the resource name */ export declare function buildRemoteResourceRecord(remoteResource: Resource, mcpClient: McpClientService, remoteAppId: string, namespace?: string): ResourceClassTokenRecord; /** * Build a ResourceTemplateClassTokenRecord for a remote resource template. * * @param remoteTemplate - The resource template definition from the remote MCP server * @param mcpClient - The MCP client service for remote communication * @param remoteAppId - The ID of the remote app * @param namespace - Optional namespace prefix for the resource name */ export declare function buildRemoteResourceTemplateRecord(remoteTemplate: ResourceTemplate, mcpClient: McpClientService, remoteAppId: string, namespace?: string): ResourceTemplateClassTokenRecord; /** * Build a PromptClassTokenRecord for a remote prompt. * * @param remotePrompt - The prompt definition from the remote MCP server * @param mcpClient - The MCP client service for remote communication * @param remoteAppId - The ID of the remote app * @param namespace - Optional namespace prefix for the prompt name */ export declare function buildRemotePromptRecord(remotePrompt: Prompt, mcpClient: McpClientService, remoteAppId: string, namespace?: string): PromptClassTokenRecord; //# sourceMappingURL=record-builders.d.ts.map