/** * @file app-helpers.ts * @description Unified API for declaring external apps in @FrontMcp({ apps: [...] }). * * Provides `app.esm()` for loading @App classes from npm packages and * `app.remote()` for connecting to external MCP servers. * * @example * ```ts * import { FrontMcp, app } from '@frontmcp/sdk'; * * @FrontMcp({ * info: { name: 'Gateway', version: '1.0.0' }, * apps: [ * LocalApp, * app.esm('@acme/tools@^1.0.0', { namespace: 'acme' }), * app.remote('https://api.example.com/mcp', { namespace: 'api' }), * ], * }) * export default class Server {} * ``` */ import type { RemoteAppMetadata } from '../common/metadata/app.metadata'; import type { EsmAppOptions, RemoteUrlAppOptions } from '../common/metadata/app.metadata'; export type { EsmAppOptions, RemoteUrlAppOptions } from '../common/metadata/app.metadata'; export type { PackageLoader } from '../common/metadata/app.metadata'; export type { AppFilterConfig, PrimitiveFilterMap } from '../common/metadata/app-filter.metadata'; /** * Unified namespace for declaring external apps. * * @example * ```ts * // Load @App class from npm * app.esm('@acme/tools@^1.0.0', { namespace: 'acme' }) * * // Connect to external MCP server * app.remote('https://api.example.com/mcp', { namespace: 'api' }) * ``` */ export declare const app: { /** * Declare an npm package to load at runtime. * The package should export an `@App`-decorated class as its default export. * * @param specifier - npm package specifier (e.g., '@acme/tools@^1.0.0') * @param options - Optional per-app overrides * @returns A `RemoteAppMetadata` ready for use in `@FrontMcp({ apps: [...] })` */ readonly esm: (specifier: string, options?: EsmAppOptions) => RemoteAppMetadata; /** * Connect to an external MCP server via HTTP. * The remote server's tools, resources, and prompts are proxied through your gateway. * * @param url - MCP server endpoint URL (e.g., 'https://api.example.com/mcp') * @param options - Optional per-app overrides * @returns A `RemoteAppMetadata` ready for use in `@FrontMcp({ apps: [...] })` */ readonly remote: (url: string, options?: RemoteUrlAppOptions) => RemoteAppMetadata; }; //# sourceMappingURL=app-helpers.d.ts.map