/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import { Logger } from '@nocobase/logger'; import { AIManager } from '../ai-manager'; import { MCPOptions } from '../mcp-manager'; import { LoadAndRegister } from './types'; import { DirectoryScanner, DirectoryScannerOptions, FileDescriptor } from './scanner'; export type MCPLoaderOptions = { pluginName: string; scan: DirectoryScannerOptions; log?: Logger; }; export declare class MCPLoader extends LoadAndRegister { protected readonly ai: AIManager; protected readonly options: MCPLoaderOptions; protected readonly scanner: DirectoryScanner; protected files: FileDescriptor[]; protected mcpDescriptors: MCPDescriptor[]; protected log: Logger; constructor(ai: AIManager, options: MCPLoaderOptions); protected scan(): Promise; protected import(): Promise; protected register(): Promise; } export type MCPDescriptor = { name: string; file: FileDescriptor; options: MCPOptions; };