import type { PiNativeMcpTools } from "./pi-native-mcp.js"; import type { FabricMcpConfig } from "../config.js"; import type { FabricActionDescriptor, FabricInvocationContext, FabricProvider, FabricProviderListRequest, FabricToolAnnotations } from "../protocol.js"; import { McpDescriptorCacheStore } from "./mcp-descriptor-cache.js"; export declare const normalizeMcpResult: (result: unknown, native?: boolean) => unknown; export interface McpProviderHooks { /** Full provider-fidelity descriptor slice after any tool-list change. */ onSliceChanged?: (descriptors: FabricActionDescriptor[]) => void; } export interface HostedMcpTool { name: string; description?: string; inputSchema?: Record; outputSchema?: Record; annotations?: FabricToolAnnotations; } /** Authorized metadata and transport only; never configuration or credentials. */ export interface HostedMcpSource { listServers(): string[]; listTools(server: string): Promise; callTool(server: string, tool: string, options: { args: Record; signal?: AbortSignal; timeoutMs?: number; disableOAuth?: boolean; }): Promise; close?(server?: string): Promise; } export declare const mcpToolDescriptor: (server: string, tool: HostedMcpTool) => FabricActionDescriptor; export interface McpProviderOptions { source?: HostedMcpSource; native?: PiNativeMcpTools; cache?: McpDescriptorCacheStore; hooks?: McpProviderHooks; } export declare class McpProvider implements FabricProvider { #private; readonly cwd: string; readonly config: FabricMcpConfig; readonly name = "mcp"; readonly description: string; constructor(cwd: string, config: FabricMcpConfig, options?: McpProviderOptions); list(request: FabricProviderListRequest, context: FabricInvocationContext): Promise; describe(actionName: string, context: FabricInvocationContext): Promise; invoke(actionName: string, args: Record, context: FabricInvocationContext): Promise; close(): Promise; warmup(): void; sliceDescriptors(): FabricActionDescriptor[]; settle(): Promise; } //# sourceMappingURL=mcp-provider.d.ts.map