import type { CallToolRequest, CallToolResult, ListToolsResult } from "@modelcontextprotocol/sdk/types.js"; import type { FacilitatorConfig, Network, Price } from "x402/types"; import type { Hook, RequestExtra, ListToolsRequestWithContext } from "../hooks.js"; export type RecipientWithTestnet = { address: string; isTestnet?: boolean; }; export type X402ProxyConfig = { recipient: Partial> | Partial>; facilitator: FacilitatorConfig; version?: number; prices: Record; }; export declare class X402MonetizationHook implements Hook { name: string; private readonly cfg; private readonly verify; private readonly settle; private readonly x402Version; constructor(cfg: X402ProxyConfig); private normalizeRecipients; private buildRequirements; private paymentRequired; processCallToolRequest(req: CallToolRequest, extra: RequestExtra): Promise<{ resultType: "continue"; request: { params: { [x: string]: unknown; name: string; _meta?: { [x: string]: unknown; progressToken?: string | number | undefined; } | undefined; arguments?: { [x: string]: unknown; } | undefined; }; method: "tools/call"; }; response?: undefined; } | { resultType: "respond"; response: { [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "resource_link"; name: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; title?: string | undefined; description?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string | undefined; }[] | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; uri: string; blob: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }; request?: undefined; }>; processCallToolResult(res: CallToolResult, original: CallToolRequest, extra: RequestExtra): Promise<{ resultType: "continue"; response: { [x: string]: unknown; content: ({ [x: string]: unknown; type: "text"; text: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "image"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "audio"; data: string; mimeType: string; _meta?: { [x: string]: unknown; } | undefined; } | { [x: string]: unknown; type: "resource_link"; name: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; title?: string | undefined; description?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string | undefined; }[] | undefined; } | { [x: string]: unknown; type: "resource"; resource: { [x: string]: unknown; text: string; uri: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; } | { [x: string]: unknown; uri: string; blob: string; _meta?: { [x: string]: unknown; } | undefined; mimeType?: string | undefined; }; _meta?: { [x: string]: unknown; } | undefined; })[]; _meta?: { [x: string]: unknown; } | undefined; structuredContent?: { [x: string]: unknown; } | undefined; isError?: boolean | undefined; }; }>; processListToolsResult(result: ListToolsResult, originalRequest: ListToolsRequestWithContext, extra: RequestExtra): Promise<{ resultType: "continue"; response: { [x: string]: unknown; tools: { [x: string]: unknown; name: string; inputSchema: { [x: string]: unknown; type: "object"; properties?: { [x: string]: unknown; } | undefined; required?: string[] | undefined; }; _meta?: { [x: string]: unknown; } | undefined; title?: string | undefined; description?: string | undefined; icons?: { [x: string]: unknown; src: string; mimeType?: string | undefined; sizes?: string | undefined; }[] | undefined; outputSchema?: { [x: string]: unknown; type: "object"; properties?: { [x: string]: unknown; } | undefined; required?: string[] | undefined; } | undefined; annotations?: { [x: string]: unknown; title?: string | undefined; readOnlyHint?: boolean | undefined; destructiveHint?: boolean | undefined; idempotentHint?: boolean | undefined; openWorldHint?: boolean | undefined; } | undefined; }[]; _meta?: { [x: string]: unknown; } | undefined; nextCursor?: string | undefined; }; }>; } //# sourceMappingURL=x402-hook.d.ts.map