import { InjectionToken, OnApplicationBootstrap } from '@nestjs/common'; import { DiscoveryService, MetadataScanner, ModulesContainer } from '@nestjs/core'; import { ToolMetadata } from '../decorators'; import { ResourceMetadata } from '../decorators/resource.decorator'; import { PromptMetadata } from '../decorators/prompt.decorator'; import { ResourceTemplateMetadata } from '../decorators/resource-template.decorator'; import type { McpOptions } from '../interfaces'; export type DiscoveredCapability = { type: 'tool' | 'resource' | 'resource-template' | 'prompt'; metadata: T; providerClass: InjectionToken; methodName: string; }; export type InjectionTokenWithName = InjectionToken & { name: string; }; export declare class McpRegistryDiscoveryService implements OnApplicationBootstrap { private readonly discovery; private readonly metadataScanner; private readonly modulesContainer; private readonly options?; private readonly logger; private discoveredCapabilitiesByMcpModuleId; constructor(discovery: DiscoveryService, metadataScanner: MetadataScanner, modulesContainer: ModulesContainer, options?: McpOptions | undefined); onApplicationBootstrap(): void; private discoverTools; private buildServerNameToModuleIdMap; private collectFeatureRegistrations; private processFeatureRegistrations; private findModuleWithProviders; private discoverToolsFromProviders; private discoverToolsForModuleSubtree; private addDiscovery; private addDiscoveryPrompt; private addDiscoveryTool; private addDiscoveryResource; private addDiscoveryResourceTemplate; getMcpModuleIds(): string[]; getTools(mcpModuleId: string): DiscoveredCapability[]; findTool(mcpModuleId: string, name: string): DiscoveredCapability | undefined; getResources(mcpModuleId: string): DiscoveredCapability[]; findResource(mcpModuleId: string, name: string): DiscoveredCapability | undefined; getResourceTemplates(mcpModuleId: string): DiscoveredCapability[]; findResourceTemplate(mcpModuleId: string, name: string): DiscoveredCapability | undefined; getPrompts(mcpModuleId: string): DiscoveredCapability[]; findPrompt(mcpModuleId: string, name: string): DiscoveredCapability | undefined; private convertTemplate; private extractTemplateQueryParams; private parseQueryString; private stripQueryString; private convertUri; findResourceByUri(mcpModuleId: string, uri: string): { resource: DiscoveredCapability; params: Record; } | undefined; findResourceTemplateByUri(mcpModuleId: string, uri: string): { resourceTemplate: DiscoveredCapability; params: Record; } | undefined; registerDynamicCapability(mcpModuleId: string, capability: DiscoveredCapability): void; removeDynamicCapability(mcpModuleId: string, type: DiscoveredCapability['type'], identifier: string): void; } //# sourceMappingURL=mcp-registry-discovery.service.d.ts.map