import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { McpServerConfig } from "./mcp";
export type McpModuleSource = "builtin" | "user-dsl" | "external-http" | "external-stdio";
export type McpModule = {
    title: string;
    description: string;
    uuid: string;
    client: Client;
    source: McpModuleSource;
    config?: McpServerConfig;
};
export declare class McpModulesManager {
    private modules;
    createMcpDslModule({ title, description }: {
        title: string;
        description: string;
    }, callback: (mcpServer: McpServer) => void): McpModule;
    createMcpBuiltinModule({ title, description }: {
        title: string;
        description: string;
    }, callback: (mcpServer: McpServer) => void): McpModule;
    createMcpServerModule(config: McpServerConfig, uuid?: string): Promise<McpModule>;
    removeMcpServerModule({ uuid, }: {
        uuid: string;
    }): Promise<boolean>;
    updateMcpServerModule({ uuid, config, }: {
        uuid: string;
        config: McpServerConfig;
    }): Promise<McpModule | null>;
    listMcpModules(): McpModule[];
    getModuleUuidsBySource(source: McpModuleSource): string[];
    getMcpModule({ uuid }: {
        uuid?: string;
    }): McpModule;
    getTools({ uuids }: {
        uuids: string[];
    }): Promise<any[]>;
    getResources({ uuids }: {
        uuids: string[];
    }): Promise<any[]>;
}
export declare const mcpModulesManager: McpModulesManager;
