import type { ModuleLoader } from 'toolception'; /** * Type for existing FMP tool registration functions * * These functions follow the pattern: registerXxxTools(server, accessToken?) * where server is typically McpServer but can be any object implementing ToolRegistrar. * * @param server - Should implement ToolRegistrar interface with a .tool() method. * At runtime, receives either McpServer or ToolCollector instance. * @param accessToken - Optional FMP API access token * * @example * ```typescript * function registerMyTools(server: McpServer, accessToken?: string): void { * server.tool("myTool", "Description", schema, handler); * } * ``` * * Note: Uses `any` for server parameter due to TypeScript contravariance limitations. * The actual implementation must have a .tool() method compatible with ToolRegistrar. */ type RegisterToolsFunction = (server: any, accessToken?: string) => void; /** * Creates a toolception-compatible module loader from an existing registerXxxTools function * * This adapter bridges the gap between FMP's imperative tool registration pattern * and toolception's declarative module loader pattern. * * @param moduleName - Name of the module (e.g., "search", "quotes") * @param registerFn - Existing registerXxxTools function * @returns Toolception-compatible module loader * * @example * ```typescript * import { registerSearchTools } from '../tools/search.js'; * * const searchLoader = createModuleAdapter('search', registerSearchTools); * const tools = await searchLoader({ accessToken: 'demo' }); * ``` */ export declare function createModuleAdapter(moduleName: string, registerFn: RegisterToolsFunction): ModuleLoader; export {};