import { ToolCallback } from "@modelcontextprotocol/sdk/server/mcp.js";
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
import { z, ZodRawShape, ZodTypeAny } from "zod";
import { IWallet } from "./wallets/wallet.js";
import { IStorage } from "./storage/storage.js";
export type ChargeCallback<InputArgs extends ZodRawShape> = (params: z.objectOutputType<InputArgs, ZodTypeAny>) => Promise<{
    satoshi: number;
    description: string;
}>;
export declare function paidCallback<InputArgs extends ZodRawShape>(cb: ToolCallback<InputArgs>, charge: ChargeCallback<InputArgs>, wallet: IWallet, storage: IStorage): (args: Parameters<typeof cb>[0] & {
    payment_hash: string;
}, extra: Parameters<typeof cb>[1]) => Promise<CallToolResult>;
