import 'reflect-metadata';
import { z } from 'zod';
import { PaymentOptions } from './PaymentOptions';
export declare const METADATA_KEY_MCP_TOOL = "x402_mcp_protocol:mcp_tool";
export interface MCPToolOptions {
    name: string;
    description?: string;
    inputSchema?: z.ZodRawShape;
    outputSchema?: z.ZodSchema;
    annotations?: {
        title?: string;
        readOnlyHint?: boolean;
        destructiveHint?: boolean;
        idempotentHint?: boolean;
        openWorldHint?: boolean;
    };
    payment?: PaymentOptions;
    _meta?: object;
}
export declare function MCPTool(options: MCPToolOptions): (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => void;
export declare function isMCPTool(target: Object, propertyKey: string | symbol): boolean;
export declare function getMCPToolOptions(target: Object, propertyKey: string | symbol): MCPToolOptions | undefined;
export declare function isPaymentRequired(target: Object, propertyKey: string | symbol): boolean;
export declare function getPaymentOptions(target: Object, propertyKey: string | symbol): PaymentOptions | undefined;
