opentool 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,382 @@
1
+ import { z } from 'zod';
2
+ import { X402Payment } from './x402/index.js';
3
+
4
+ declare const PaymentConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
5
+ definition: z.ZodObject<{
6
+ amount: z.ZodString;
7
+ currency: z.ZodObject<{
8
+ code: z.ZodString;
9
+ symbol: z.ZodString;
10
+ decimals: z.ZodNumber;
11
+ }, z.core.$strip>;
12
+ asset: z.ZodObject<{
13
+ symbol: z.ZodString;
14
+ network: z.ZodString;
15
+ address: z.ZodString;
16
+ decimals: z.ZodNumber;
17
+ }, z.core.$strip>;
18
+ payTo: z.ZodString;
19
+ resource: z.ZodOptional<z.ZodString>;
20
+ description: z.ZodOptional<z.ZodString>;
21
+ scheme: z.ZodString;
22
+ network: z.ZodString;
23
+ facilitator: z.ZodObject<{
24
+ url: z.ZodString;
25
+ verifyPath: z.ZodOptional<z.ZodString>;
26
+ settlePath: z.ZodOptional<z.ZodString>;
27
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ }, z.core.$strip>;
31
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
32
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>;
33
+ type PaymentConfig = z.infer<typeof PaymentConfigSchema>;
34
+ declare const ToolMetadataOverridesSchema: z.ZodObject<{
35
+ name: z.ZodOptional<z.ZodString>;
36
+ description: z.ZodOptional<z.ZodString>;
37
+ annotations: z.ZodOptional<z.ZodObject<{
38
+ title: z.ZodOptional<z.ZodString>;
39
+ readOnlyHint: z.ZodOptional<z.ZodBoolean>;
40
+ destructiveHint: z.ZodOptional<z.ZodBoolean>;
41
+ idempotentHint: z.ZodOptional<z.ZodBoolean>;
42
+ openWorldHint: z.ZodOptional<z.ZodBoolean>;
43
+ requiresPayment: z.ZodOptional<z.ZodBoolean>;
44
+ }, z.core.$strict>>;
45
+ payment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
46
+ definition: z.ZodObject<{
47
+ amount: z.ZodString;
48
+ currency: z.ZodObject<{
49
+ code: z.ZodString;
50
+ symbol: z.ZodString;
51
+ decimals: z.ZodNumber;
52
+ }, z.core.$strip>;
53
+ asset: z.ZodObject<{
54
+ symbol: z.ZodString;
55
+ network: z.ZodString;
56
+ address: z.ZodString;
57
+ decimals: z.ZodNumber;
58
+ }, z.core.$strip>;
59
+ payTo: z.ZodString;
60
+ resource: z.ZodOptional<z.ZodString>;
61
+ description: z.ZodOptional<z.ZodString>;
62
+ scheme: z.ZodString;
63
+ network: z.ZodString;
64
+ facilitator: z.ZodObject<{
65
+ url: z.ZodString;
66
+ verifyPath: z.ZodOptional<z.ZodString>;
67
+ settlePath: z.ZodOptional<z.ZodString>;
68
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$strip>;
70
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
71
+ }, z.core.$strip>;
72
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
73
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
74
+ discovery: z.ZodOptional<z.ZodObject<{
75
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
76
+ category: z.ZodOptional<z.ZodString>;
77
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
78
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
79
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
80
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
81
+ documentation: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
82
+ }, z.core.$catchall<z.ZodAny>>>;
83
+ chains: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
84
+ }, z.core.$catchall<z.ZodAny>>;
85
+ type ToolMetadataOverrides = z.infer<typeof ToolMetadataOverridesSchema>;
86
+ declare const ToolSchema: z.ZodObject<{
87
+ name: z.ZodString;
88
+ description: z.ZodString;
89
+ inputSchema: z.ZodAny;
90
+ annotations: z.ZodOptional<z.ZodObject<{
91
+ title: z.ZodOptional<z.ZodString>;
92
+ readOnlyHint: z.ZodOptional<z.ZodBoolean>;
93
+ destructiveHint: z.ZodOptional<z.ZodBoolean>;
94
+ idempotentHint: z.ZodOptional<z.ZodBoolean>;
95
+ openWorldHint: z.ZodOptional<z.ZodBoolean>;
96
+ requiresPayment: z.ZodOptional<z.ZodBoolean>;
97
+ }, z.core.$strict>>;
98
+ payment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
99
+ definition: z.ZodObject<{
100
+ amount: z.ZodString;
101
+ currency: z.ZodObject<{
102
+ code: z.ZodString;
103
+ symbol: z.ZodString;
104
+ decimals: z.ZodNumber;
105
+ }, z.core.$strip>;
106
+ asset: z.ZodObject<{
107
+ symbol: z.ZodString;
108
+ network: z.ZodString;
109
+ address: z.ZodString;
110
+ decimals: z.ZodNumber;
111
+ }, z.core.$strip>;
112
+ payTo: z.ZodString;
113
+ resource: z.ZodOptional<z.ZodString>;
114
+ description: z.ZodOptional<z.ZodString>;
115
+ scheme: z.ZodString;
116
+ network: z.ZodString;
117
+ facilitator: z.ZodObject<{
118
+ url: z.ZodString;
119
+ verifyPath: z.ZodOptional<z.ZodString>;
120
+ settlePath: z.ZodOptional<z.ZodString>;
121
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
122
+ }, z.core.$strip>;
123
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
+ }, z.core.$strip>;
125
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
127
+ discovery: z.ZodOptional<z.ZodObject<{
128
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
129
+ category: z.ZodOptional<z.ZodString>;
130
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
132
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
133
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
134
+ documentation: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
135
+ }, z.core.$catchall<z.ZodAny>>>;
136
+ chains: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
137
+ }, z.core.$strict>;
138
+ type Tool = z.infer<typeof ToolSchema>;
139
+ declare const MetadataSchema: z.ZodObject<{
140
+ metadataSpecVersion: z.ZodOptional<z.ZodString>;
141
+ name: z.ZodOptional<z.ZodString>;
142
+ displayName: z.ZodOptional<z.ZodString>;
143
+ version: z.ZodOptional<z.ZodString>;
144
+ description: z.ZodOptional<z.ZodString>;
145
+ author: z.ZodOptional<z.ZodString>;
146
+ repository: z.ZodOptional<z.ZodString>;
147
+ website: z.ZodOptional<z.ZodString>;
148
+ category: z.ZodOptional<z.ZodString>;
149
+ categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
150
+ termsOfService: z.ZodOptional<z.ZodString>;
151
+ mcpUrl: z.ZodOptional<z.ZodString>;
152
+ payment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
153
+ definition: z.ZodObject<{
154
+ amount: z.ZodString;
155
+ currency: z.ZodObject<{
156
+ code: z.ZodString;
157
+ symbol: z.ZodString;
158
+ decimals: z.ZodNumber;
159
+ }, z.core.$strip>;
160
+ asset: z.ZodObject<{
161
+ symbol: z.ZodString;
162
+ network: z.ZodString;
163
+ address: z.ZodString;
164
+ decimals: z.ZodNumber;
165
+ }, z.core.$strip>;
166
+ payTo: z.ZodString;
167
+ resource: z.ZodOptional<z.ZodString>;
168
+ description: z.ZodOptional<z.ZodString>;
169
+ scheme: z.ZodString;
170
+ network: z.ZodString;
171
+ facilitator: z.ZodObject<{
172
+ url: z.ZodString;
173
+ verifyPath: z.ZodOptional<z.ZodString>;
174
+ settlePath: z.ZodOptional<z.ZodString>;
175
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strip>;
177
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
178
+ }, z.core.$strip>;
179
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
180
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
181
+ discovery: z.ZodOptional<z.ZodObject<{
182
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
183
+ category: z.ZodOptional<z.ZodString>;
184
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
185
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
186
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
187
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
188
+ documentation: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
189
+ }, z.core.$catchall<z.ZodAny>>>;
190
+ promptExamples: z.ZodOptional<z.ZodArray<z.ZodString>>;
191
+ iconPath: z.ZodOptional<z.ZodString>;
192
+ videoPath: z.ZodOptional<z.ZodString>;
193
+ image: z.ZodOptional<z.ZodString>;
194
+ animation_url: z.ZodOptional<z.ZodString>;
195
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
196
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
197
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
198
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
199
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
200
+ chains: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
201
+ }, z.core.$catchall<z.ZodAny>>;
202
+ type Metadata = z.infer<typeof MetadataSchema>;
203
+ declare const BuildMetadataSchema: z.ZodObject<{
204
+ metadataSpecVersion: z.ZodDefault<z.ZodString>;
205
+ name: z.ZodString;
206
+ displayName: z.ZodString;
207
+ version: z.ZodString;
208
+ description: z.ZodOptional<z.ZodString>;
209
+ author: z.ZodOptional<z.ZodString>;
210
+ repository: z.ZodOptional<z.ZodString>;
211
+ website: z.ZodOptional<z.ZodString>;
212
+ category: z.ZodString;
213
+ termsOfService: z.ZodOptional<z.ZodString>;
214
+ mcpUrl: z.ZodOptional<z.ZodString>;
215
+ payment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
216
+ definition: z.ZodObject<{
217
+ amount: z.ZodString;
218
+ currency: z.ZodObject<{
219
+ code: z.ZodString;
220
+ symbol: z.ZodString;
221
+ decimals: z.ZodNumber;
222
+ }, z.core.$strip>;
223
+ asset: z.ZodObject<{
224
+ symbol: z.ZodString;
225
+ network: z.ZodString;
226
+ address: z.ZodString;
227
+ decimals: z.ZodNumber;
228
+ }, z.core.$strip>;
229
+ payTo: z.ZodString;
230
+ resource: z.ZodOptional<z.ZodString>;
231
+ description: z.ZodOptional<z.ZodString>;
232
+ scheme: z.ZodString;
233
+ network: z.ZodString;
234
+ facilitator: z.ZodObject<{
235
+ url: z.ZodString;
236
+ verifyPath: z.ZodOptional<z.ZodString>;
237
+ settlePath: z.ZodOptional<z.ZodString>;
238
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$strip>;
240
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
241
+ }, z.core.$strip>;
242
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
243
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
244
+ tools: z.ZodArray<z.ZodObject<{
245
+ name: z.ZodString;
246
+ description: z.ZodString;
247
+ inputSchema: z.ZodAny;
248
+ annotations: z.ZodOptional<z.ZodObject<{
249
+ title: z.ZodOptional<z.ZodString>;
250
+ readOnlyHint: z.ZodOptional<z.ZodBoolean>;
251
+ destructiveHint: z.ZodOptional<z.ZodBoolean>;
252
+ idempotentHint: z.ZodOptional<z.ZodBoolean>;
253
+ openWorldHint: z.ZodOptional<z.ZodBoolean>;
254
+ requiresPayment: z.ZodOptional<z.ZodBoolean>;
255
+ }, z.core.$strict>>;
256
+ payment: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
257
+ definition: z.ZodObject<{
258
+ amount: z.ZodString;
259
+ currency: z.ZodObject<{
260
+ code: z.ZodString;
261
+ symbol: z.ZodString;
262
+ decimals: z.ZodNumber;
263
+ }, z.core.$strip>;
264
+ asset: z.ZodObject<{
265
+ symbol: z.ZodString;
266
+ network: z.ZodString;
267
+ address: z.ZodString;
268
+ decimals: z.ZodNumber;
269
+ }, z.core.$strip>;
270
+ payTo: z.ZodString;
271
+ resource: z.ZodOptional<z.ZodString>;
272
+ description: z.ZodOptional<z.ZodString>;
273
+ scheme: z.ZodString;
274
+ network: z.ZodString;
275
+ facilitator: z.ZodObject<{
276
+ url: z.ZodString;
277
+ verifyPath: z.ZodOptional<z.ZodString>;
278
+ settlePath: z.ZodOptional<z.ZodString>;
279
+ apiKeyHeader: z.ZodOptional<z.ZodString>;
280
+ }, z.core.$strip>;
281
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
282
+ }, z.core.$strip>;
283
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
284
+ }, z.core.$loose>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>>;
285
+ discovery: z.ZodOptional<z.ZodObject<{
286
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
287
+ category: z.ZodOptional<z.ZodString>;
288
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
289
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
290
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
291
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
292
+ documentation: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
293
+ }, z.core.$catchall<z.ZodAny>>>;
294
+ chains: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
295
+ }, z.core.$strict>>;
296
+ discovery: z.ZodOptional<z.ZodObject<{
297
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
298
+ category: z.ZodOptional<z.ZodString>;
299
+ useCases: z.ZodOptional<z.ZodArray<z.ZodString>>;
300
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
301
+ requirements: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
302
+ compatibility: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
303
+ documentation: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
304
+ }, z.core.$catchall<z.ZodAny>>>;
305
+ promptExamples: z.ZodOptional<z.ZodArray<z.ZodString>>;
306
+ iconPath: z.ZodOptional<z.ZodString>;
307
+ videoPath: z.ZodOptional<z.ZodString>;
308
+ image: z.ZodOptional<z.ZodString>;
309
+ animation_url: z.ZodOptional<z.ZodString>;
310
+ chains: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
311
+ }, z.core.$strict>;
312
+ type BuildMetadata = z.infer<typeof BuildMetadataSchema>;
313
+
314
+ interface ToolContent {
315
+ type: "text" | "image" | "resource";
316
+ text?: string;
317
+ data?: string;
318
+ mimeType?: string;
319
+ }
320
+ interface ToolResponse {
321
+ content: ToolContent[];
322
+ isError?: boolean;
323
+ }
324
+ declare const HTTP_METHODS: readonly ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"];
325
+ type HttpMethod = (typeof HTTP_METHODS)[number];
326
+ interface HttpHandlerDefinition {
327
+ method: HttpMethod;
328
+ handler: (request: Request) => Promise<Response> | Response;
329
+ }
330
+ interface McpConfig {
331
+ enabled: boolean;
332
+ mode?: "stdio" | "lambda" | "dual";
333
+ defaultMethod?: string;
334
+ metadataOverrides?: Partial<ToolMetadataOverrides>;
335
+ }
336
+ interface InternalToolDefinition<TSchema extends z.ZodSchema | undefined = z.ZodSchema | undefined> {
337
+ filename: string;
338
+ schema?: TSchema;
339
+ inputSchema?: unknown;
340
+ metadata: ToolMetadataOverrides | null;
341
+ httpHandlers: HttpHandlerDefinition[];
342
+ mcpConfig?: McpConfig | null;
343
+ sourcePath?: string;
344
+ handler?: (params: any) => Promise<ToolResponse>;
345
+ payment?: X402Payment | null;
346
+ }
347
+ interface ServerConfig {
348
+ name: string;
349
+ version: string;
350
+ tools: InternalToolDefinition[];
351
+ }
352
+ interface BuildConfig {
353
+ toolsDir: string;
354
+ outputDir: string;
355
+ serverName?: string;
356
+ serverVersion?: string;
357
+ }
358
+
359
+ interface GenerateMetadataOptions {
360
+ input: string;
361
+ output?: string;
362
+ }
363
+ interface GenerateMetadataResult {
364
+ metadata: Metadata;
365
+ defaultsApplied: string[];
366
+ tools: InternalToolDefinition[];
367
+ outputPath: string;
368
+ }
369
+ declare function generateMetadataCommand(options: GenerateMetadataOptions): Promise<void>;
370
+ declare function generateMetadata(options: GenerateMetadataOptions): Promise<GenerateMetadataResult>;
371
+
372
+ interface ValidateOptions {
373
+ input: string;
374
+ }
375
+ interface LoadToolsOptions {
376
+ projectRoot?: string;
377
+ }
378
+ declare function validateCommand(options: ValidateOptions): Promise<void>;
379
+ declare function validateFullCommand(options: ValidateOptions): Promise<void>;
380
+ declare function loadAndValidateTools(toolsDir: string, options?: LoadToolsOptions): Promise<InternalToolDefinition[]>;
381
+
382
+ export { type BuildConfig as B, type GenerateMetadataOptions as G, HTTP_METHODS as H, type InternalToolDefinition as I, type McpConfig as M, type PaymentConfig as P, type ServerConfig as S, type ToolResponse as T, type ValidateOptions as V, generateMetadataCommand as a, type ToolContent as b, type HttpMethod as c, type HttpHandlerDefinition as d, type Tool as e, type ToolMetadataOverrides as f, generateMetadata as g, type Metadata as h, type BuildMetadata as i, type GenerateMetadataResult as j, validateFullCommand as k, loadAndValidateTools as l, validateCommand as v };
@@ -0,0 +1,154 @@
1
+ import { Address, WalletClient } from 'viem';
2
+
3
+ interface X402VerificationResult {
4
+ success: boolean;
5
+ metadata?: {
6
+ optionId: string;
7
+ verifier: string;
8
+ [key: string]: unknown;
9
+ };
10
+ failure?: {
11
+ reason: string;
12
+ code: string;
13
+ };
14
+ responseHeaders?: Record<string, string>;
15
+ }
16
+ interface X402FacilitatorConfig {
17
+ url: string;
18
+ verifyPath?: string;
19
+ settlePath?: string;
20
+ apiKeyHeader?: string;
21
+ }
22
+ interface CurrencySpec {
23
+ decimals: number;
24
+ symbol: string;
25
+ network: string;
26
+ assetAddress: string;
27
+ }
28
+ declare const SUPPORTED_CURRENCIES: Record<string, CurrencySpec>;
29
+ declare const DEFAULT_FACILITATOR: X402FacilitatorConfig;
30
+
31
+ interface X402PaymentDefinition {
32
+ amount: string;
33
+ currency: {
34
+ code: string;
35
+ symbol: string;
36
+ decimals: number;
37
+ };
38
+ asset: {
39
+ symbol: string;
40
+ network: string;
41
+ address: string;
42
+ decimals: number;
43
+ };
44
+ payTo: string;
45
+ resource?: string;
46
+ description?: string;
47
+ scheme: string;
48
+ network: string;
49
+ facilitator: X402FacilitatorConfig;
50
+ metadata?: Record<string, unknown>;
51
+ }
52
+ declare const PAYMENT_HEADERS: readonly ["X-PAYMENT", "X-PAYMENT-RESPONSE"];
53
+
54
+ interface X402ClientConfig {
55
+ privateKey: `0x${string}`;
56
+ rpcUrl?: string;
57
+ }
58
+ interface X402PayRequest {
59
+ url: string;
60
+ method?: string;
61
+ body?: unknown;
62
+ headers?: Record<string, string>;
63
+ }
64
+ interface X402PayResult {
65
+ success: boolean;
66
+ response?: Response;
67
+ error?: string;
68
+ paymentDetails?: {
69
+ amount: string;
70
+ currency: string;
71
+ network: string;
72
+ signature: string;
73
+ };
74
+ }
75
+ declare class X402Client {
76
+ private account;
77
+ private walletClient;
78
+ constructor(config: X402ClientConfig);
79
+ pay(request: X402PayRequest): Promise<X402PayResult>;
80
+ private signTransferAuthorization;
81
+ getAddress(): Address;
82
+ }
83
+ declare function payX402(config: {
84
+ privateKey: `0x${string}`;
85
+ url: string;
86
+ body?: unknown;
87
+ rpcUrl?: string;
88
+ }): Promise<X402PayResult>;
89
+ interface EIP3009Authorization {
90
+ from: Address;
91
+ to: Address;
92
+ value: bigint;
93
+ validAfter: bigint;
94
+ validBefore: bigint;
95
+ nonce: `0x${string}`;
96
+ }
97
+ interface X402BrowserClientConfig {
98
+ walletClient: WalletClient;
99
+ chainId: number;
100
+ }
101
+ declare class X402BrowserClient {
102
+ private walletClient;
103
+ private chainId;
104
+ constructor(config: X402BrowserClientConfig);
105
+ pay(request: X402PayRequest): Promise<X402PayResult>;
106
+ private signTransferAuthorization;
107
+ }
108
+ declare function payX402WithWallet(walletClient: WalletClient, chainId: number, request: X402PayRequest): Promise<X402PayResult>;
109
+
110
+ interface DefineX402PaymentConfig {
111
+ amount: string | number;
112
+ payTo: string;
113
+ currency?: string;
114
+ message?: string;
115
+ resource?: string;
116
+ network?: string;
117
+ assetAddress?: string;
118
+ scheme?: "exact" | "bounded";
119
+ facilitator?: string | X402FacilitatorConfig;
120
+ metadata?: Record<string, unknown>;
121
+ }
122
+ interface X402Payment {
123
+ definition: X402PaymentDefinition;
124
+ metadata?: Record<string, unknown>;
125
+ }
126
+ interface RequireX402PaymentOptions {
127
+ settle?: boolean;
128
+ fetchImpl?: typeof fetch;
129
+ onFailure?: (result: X402VerificationResult) => Response;
130
+ }
131
+ interface RequireX402PaymentSuccess {
132
+ payment: {
133
+ optionId: string;
134
+ verifier: string;
135
+ amount: string;
136
+ currency: string;
137
+ network: string;
138
+ };
139
+ headers: Record<string, string>;
140
+ result: X402VerificationResult;
141
+ }
142
+ type RequireX402PaymentOutcome = Response | RequireX402PaymentSuccess;
143
+ declare class X402PaymentRequiredError extends Error {
144
+ readonly response: Response;
145
+ readonly verification: X402VerificationResult | undefined;
146
+ constructor(response: Response, verification?: X402VerificationResult);
147
+ }
148
+ type X402PaymentContext = RequireX402PaymentSuccess;
149
+ declare function getX402PaymentContext(request: Request): X402PaymentContext | undefined;
150
+ declare function defineX402Payment(config: DefineX402PaymentConfig): X402Payment;
151
+ declare function requireX402Payment(request: Request, payment: X402Payment | X402PaymentDefinition, options?: RequireX402PaymentOptions): Promise<RequireX402PaymentOutcome>;
152
+ declare function withX402Payment(handler: (request: Request) => Promise<Response> | Response, payment: X402Payment | X402PaymentDefinition, options?: RequireX402PaymentOptions): (request: Request) => Promise<Response>;
153
+
154
+ export { type CurrencySpec, DEFAULT_FACILITATOR, type DefineX402PaymentConfig, type EIP3009Authorization, PAYMENT_HEADERS, type RequireX402PaymentOptions, type RequireX402PaymentOutcome, type RequireX402PaymentSuccess, SUPPORTED_CURRENCIES, X402BrowserClient, type X402BrowserClientConfig, X402Client, type X402ClientConfig, type X402FacilitatorConfig, type X402PayRequest, type X402PayResult, type X402Payment, type X402PaymentContext, type X402PaymentDefinition, X402PaymentRequiredError, type X402VerificationResult, defineX402Payment, getX402PaymentContext, payX402, payX402WithWallet, requireX402Payment, withX402Payment };