@tuwaio/nova-payments 0.0.0-stage → 0.0.0

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,588 @@
1
+ /**
2
+ * All texts of the Nova Payments checkout, screen readers' included. `{name}` placeholders are filled by the
3
+ * checkout. Pass a partial object as `labels` of `NovaPaymentsProvider` to override some of them in every language.
4
+ */
5
+ type NovaPaymentsLabels = {
6
+ /** Shared texts. */
7
+ common: {
8
+ /** Close buttons, and the accessible name of the close icon (default: `Close`) */
9
+ close: string;
10
+ /** Retry buttons (default: `Try again`) */
11
+ retry: string;
12
+ /** While the checkout loads (default: `Loading the checkout…`) */
13
+ loading: string;
14
+ /** Accessible title of the checkout dialog; `{merchant}` is the seller's name (default: `Pay {merchant}`) */
15
+ dialogTitle: string;
16
+ };
17
+ /** The checkout cannot be opened. */
18
+ error: {
19
+ /** Heading (default: `The checkout can't be opened`) */
20
+ title: string;
21
+ /** The link is wrong or no longer works (`checkout_not_found`) */
22
+ notFound: string;
23
+ /** Any other failure */
24
+ generic: string;
25
+ };
26
+ /** The stepper in the header. */
27
+ steps: {
28
+ /** Buyer details (default: `Details`) */
29
+ details: string;
30
+ /** Payment method (default: `Method`) */
31
+ method: string;
32
+ /** Payment (default: `Pay`) */
33
+ pay: string;
34
+ /** Confirmation on the network (default: `Confirm`) */
35
+ confirm: string;
36
+ /** Automatic payments of a subscription (default: `Auto-pay`) */
37
+ autoPay: string;
38
+ /** Accessible name of the current step: `{current}`, `{total}`, `{name}` (default: `Step {current} of {total}: {name}`) */
39
+ progress: string;
40
+ /** Accessible name of the stepper (default: `Payment steps`) */
41
+ label: string;
42
+ };
43
+ /** The language menu in the header. */
44
+ language: {
45
+ /** Accessible name of the button; `{language}` is the current language (default: `Language: {language}`) */
46
+ button: string;
47
+ /** Title of the menu (default: `Language`) */
48
+ title: string;
49
+ /** Under the list before payment (default: `Your invoice and receipt use this language too.`) */
50
+ note: string;
51
+ /** Under the list once the receipt is issued */
52
+ noteAfterPaid: string;
53
+ };
54
+ /** The method step: the token, its network and how to pay. */
55
+ method: {
56
+ /** Heading (default: `Choose how to pay`) */
57
+ title: string;
58
+ /** Under the heading; `{minutes}` is how long a price holds (default: `The price locks for {minutes} minutes when you continue.`) */
59
+ subtitle: string;
60
+ /** Name of the token group (default: `Token`) */
61
+ token: string;
62
+ /** Under a token with several networks; `{count}` (default: `{count} networks`) */
63
+ networks: string;
64
+ /** Name of the network group; `{symbol}` (default: `{symbol} network`) */
65
+ network: string;
66
+ /** Badge of the connected wallet's network (default: `Your wallet`) */
67
+ yourWallet: string;
68
+ /** Badge of a method the merchant marks (default: `Popular`) */
69
+ popular: string;
70
+ /** A method whose gas the merchant may pay (default: `No gas fee`) */
71
+ noGasFee: string;
72
+ /** A method whose gas the buyer pays (default: `You pay the network fee`) */
73
+ buyerPaysGas: string;
74
+ /** Discount of a method; `{percent}` (default: `−{percent}%`) */
75
+ discount: string;
76
+ /** Markup of a method; `{percent}` (default: `+{percent}%`) */
77
+ markup: string;
78
+ /** Name of the payment way group (default: `Pay with`) */
79
+ payWith: string;
80
+ /** Pay from a wallet in this browser (default: `Wallet`) */
81
+ wallet: string;
82
+ /** Under "Wallet" without a connected wallet (default: `MetaMask, Rabby, Phantom…`) */
83
+ walletHint: string;
84
+ /** Pay by scanning a QR code (default: `QR code`) */
85
+ qr: string;
86
+ /** Under "QR code" (default: `Phone wallet`) */
87
+ qrHint: string;
88
+ /** Main button (default: `Continue`) */
89
+ continue: string;
90
+ /** While the price is being locked (default: `Getting the price…`) */
91
+ quoting: string;
92
+ /** Under the button with both policies; `{terms}`, `{refundPolicy}` are links (default: `By continuing you agree to the seller's {terms} and {refundPolicy}.`) */
93
+ agreeBoth: string;
94
+ /** Under the button with one policy; `{link}` (default: `By continuing you agree to the seller's {link}.`) */
95
+ agreeOne: string;
96
+ /** No method takes the invoice */
97
+ noMethods: string;
98
+ /** The page can pay the chosen method neither from a wallet nor with a QR code */
99
+ methodUnavailable: string;
100
+ /** The seller named the paying wallet, and it is another one (`payer_not_expected`) */
101
+ payerNotExpected: string;
102
+ /** Too many tries (`rate_limited`) (default: `Too many tries. Wait a minute and try again.`) */
103
+ rateLimited: string;
104
+ };
105
+ /** The buyer details step. */
106
+ buyer: {
107
+ /** Heading (default: `Your details`) */
108
+ title: string;
109
+ /** Under the heading (default: `The seller needs them for the invoice and the receipt.`) */
110
+ subtitle: string;
111
+ /** Email field (default: `Email`) */
112
+ email: string;
113
+ /** Name field of a person (default: `Name`) */
114
+ name: string;
115
+ /** Name field of a company (default: `Company`) */
116
+ companyName: string;
117
+ /** First address line (default: `Address`) */
118
+ addressLine1: string;
119
+ /** Second address line (default: `Address, line 2`) */
120
+ addressLine2: string;
121
+ /** Postal code (default: `Postal code`) */
122
+ postalCode: string;
123
+ /** City (default: `City`) */
124
+ city: string;
125
+ /** Country (default: `Country`) */
126
+ country: string;
127
+ /** Placeholder of the country list (default: `Choose a country`) */
128
+ chooseCountry: string;
129
+ /** Tax ID (default: `VAT or tax ID`) */
130
+ taxId: string;
131
+ /** Company registration number (default: `Company number`) */
132
+ registrationNumber: string;
133
+ /** Marks an optional field (default: `optional`) */
134
+ optional: string;
135
+ /** Checkbox for a company invoice (default: `I need an invoice for my company`) */
136
+ companyInvoice: string;
137
+ /** A required field is empty (default: `Required`) */
138
+ required: string;
139
+ /** The email is not one (default: `Enter an email like name@example.com`) */
140
+ invalidEmail: string;
141
+ /** The country is not on the list (default: `Choose a country from the list`) */
142
+ invalidCountry: string;
143
+ /** Main button (default: `Continue`) */
144
+ continue: string;
145
+ };
146
+ /** The pay step: the wallet, the locked price, the network fee and the main action. */
147
+ pay: {
148
+ /** Heading, read by screen readers (default: `Pay`) */
149
+ title: string;
150
+ /** The connected wallet under its name: `{address}`, `{network}` (default: `{address} · {network}`) */
151
+ walletLine: string;
152
+ /** Button that changes the wallet (default: `Change`) */
153
+ change: string;
154
+ /** Accessible name of that button (default: `Change wallet`) */
155
+ changeWallet: string;
156
+ /** Above the amount (default: `You send`) */
157
+ youSend: string;
158
+ /** Accessible name of the copy button (default: `Copy amount`) */
159
+ copyAmount: string;
160
+ /** After copying (default: `Copied`) */
161
+ copied: string;
162
+ /** Under the amount: `{network}` (default: `on {network}`) */
163
+ onNetwork: string;
164
+ /** The invoice value of the amount: `{amount}`, `{currency}` (default: `= {amount} {currency}`) */
165
+ fiatValue: string;
166
+ /** The price lock: `{time}` is a countdown (default: `Price locked for {time}`) */
167
+ priceLocked: string;
168
+ /** Button that locks a new price (default: `Refresh price`) */
169
+ refreshPrice: string;
170
+ /** In the last minute of the price: `{time}` (default: `This price ends in {time}. Keep it?`) */
171
+ priceEnding: string;
172
+ /** Button that locks the price again: `{minutes}` (default: `Keep this price · +{minutes} min`) */
173
+ keepPrice: string;
174
+ /** The price lock ran out (default: `The price lock ran out.`) */
175
+ priceExpired: string;
176
+ /** Button that locks a new price after it ran out (default: `Get a new price`) */
177
+ newPrice: string;
178
+ /** Row of the rate (default: `Rate`) */
179
+ rate: string;
180
+ /** The rate: `{symbol}`, `{price}`, `{currency}` (default: `1 {symbol} = {price} {currency}`) */
181
+ rateValue: string;
182
+ /** Row of the network fee (default: `Network fee`) */
183
+ networkFee: string;
184
+ /** The merchant pays the gas: `{merchant}` (default: `{merchant} pays · you only sign`) */
185
+ merchantPaysGas: string;
186
+ /** The buyer pays the gas: `{amount}` is the estimate (default: `≈ {amount} · from your wallet`) */
187
+ gasEstimate: string;
188
+ /** The buyer pays the gas, estimate unknown (default: `Paid from your wallet`) */
189
+ gasFromWallet: string;
190
+ /** Row of the recipient (default: `To`) */
191
+ to: string;
192
+ /** Row of the invoice total, with a token transfer fee (default: `Invoice total`) */
193
+ invoiceTotal: string;
194
+ /** Row of the token's transfer fee: `{percent}` (default: `Token transfer fee {percent}%`) */
195
+ transferFee: string;
196
+ /** Row of what the merchant receives: `{merchant}` (default: `{merchant} receives`) */
197
+ merchantReceives: string;
198
+ /** Why the buyer sends more with a transfer fee */
199
+ transferFeeNote: string;
200
+ /** Main button of a gasless payment: `{amount}` with its symbol (default: `Sign to pay {amount}`) */
201
+ signToPay: string;
202
+ /** Main button when the buyer pays the gas: `{amount}` (default: `Pay {amount}`) */
203
+ payAmount: string;
204
+ /** Main button on the wrong network: `{network}` (default: `Switch to {network}`) */
205
+ switchTo: string;
206
+ /** Main button without a wallet of the method's family (default: `Connect a wallet`) */
207
+ connect: string;
208
+ /** Link back to the method step (default: `Back to methods`) */
209
+ back: string;
210
+ /** Pays the gas instead of signing (default: `Pay with gas instead`) */
211
+ payWithGas: string;
212
+ /** Goes back to the gasless payment: `{merchant}` (default: `Let {merchant} pay the gas`) */
213
+ payGasless: string;
214
+ /** Under the button: `{merchant}` */
215
+ disclaimer: string;
216
+ /** Heading of the wrong network banner (default: `Wrong network`) */
217
+ wrongNetwork: string;
218
+ /** Text of the banner: `{current}`, `{network}` (default: `Your wallet is on {current}. This payment goes on {network}.`) */
219
+ wrongNetworkText: string;
220
+ /** Under the switch button (default: `Your wallet asks you to approve the switch.`) */
221
+ switchHint: string;
222
+ /** Heading of a short balance (default: `Not enough`) */
223
+ notEnough: string;
224
+ /** The balance: `{amount}`, `{network}` (default: `Your wallet has {amount} on {network}`) */
225
+ walletHas: string;
226
+ /** The difference: `{short}`, `{need}` (default: `{short} short of {need}.`) */
227
+ shortBy: string;
228
+ /** Above the methods the wallet can pay (default: `Pay from what this wallet has`) */
229
+ payFromBalance: string;
230
+ /** Balance under such a method: `{amount}` (default: `You have {amount}`) */
231
+ youHave: string;
232
+ /** Before the seller's top-up link: `{symbol}` (default: `Or add {symbol} to this wallet and come back:`) */
233
+ topUp: string;
234
+ /** The seller's top-up link: `{symbol}` (default: `Get {symbol}`) */
235
+ getToken: string;
236
+ /** Without a way to connect a wallet in this app */
237
+ connectUnavailable: string;
238
+ /** The buyer declined in the wallet: `{wallet}` (default: `You declined the request in {wallet}.`) */
239
+ declined: string;
240
+ /** Button after a declined request (default: `Try again`) */
241
+ tryAgain: string;
242
+ /** The transaction failed: `{network}` */
243
+ failed: string;
244
+ /** Button after a failed transaction (default: `Pay again`) */
245
+ payAgain: string;
246
+ /** The wallet cannot pay this way: `{wallet}` (default: `{wallet} can't make this payment.`) */
247
+ unsupported: string;
248
+ /** The wallet screening of Quasar is unavailable (default: `The wallet check is unavailable right now.`) */
249
+ screeningUnavailable: string;
250
+ /** Button then (default: `Try again in a minute`) */
251
+ retryLater: string;
252
+ /** No answer from Quasar */
253
+ noAnswer: string;
254
+ /** Title of the payment in the app's transaction history and toasts: `{merchant}` (default: `Payment to {merchant}`) */
255
+ txTitle: string;
256
+ /** Its description: `{amount}` with its symbol, `{invoice}` the invoice number (default: `{amount} · {invoice}`) */
257
+ txDescription: string;
258
+ };
259
+ /** The window while the wallet asks the buyer. */
260
+ walletPrompt: {
261
+ /** Heading of a gasless signature: `{wallet}` (default: `Sign in {wallet}`) */
262
+ signIn: string;
263
+ /** Heading of a transaction: `{wallet}` (default: `Confirm in {wallet}`) */
264
+ confirmIn: string;
265
+ /** Heading while switching the network: `{wallet}` (default: `Approve the switch in {wallet}`) */
266
+ switchIn: string;
267
+ /** Text of a gasless signature: `{amount}`, `{merchant}`, `{network}` */
268
+ signText: string;
269
+ /** Text of a transaction: `{amount}`, `{merchant}`, `{network}` */
270
+ confirmText: string;
271
+ /** Above the things to check: `{wallet}` (default: `Check in {wallet} before signing`) */
272
+ check: string;
273
+ /** Row of the amount (default: `Amount`) */
274
+ amount: string;
275
+ /** Row of the recipient (default: `To`) */
276
+ to: string;
277
+ /** Row of the network (default: `Network`) */
278
+ network: string;
279
+ /** Row of the price lock (default: `Price locked`) */
280
+ priceLocked: string;
281
+ /** Before the retry button (default: `The wallet window didn't open?`) */
282
+ notOpened: string;
283
+ /** Retry button (default: `Try again`) */
284
+ tryAgain: string;
285
+ /** For a transaction that may still wait in the wallet: `{wallet}` */
286
+ stillWaiting: string;
287
+ /** Closes the window (default: `Cancel`) */
288
+ cancel: string;
289
+ /** While Quasar takes the payment (default: `Handing the payment to Quasar…`) */
290
+ submitting: string;
291
+ };
292
+ /** The QR code step: Solana Pay, or this checkout on a phone. */
293
+ qr: {
294
+ /** Heading of Solana Pay (default: `Scan with a Solana wallet`) */
295
+ solanaTitle: string;
296
+ /** Under it (default: `Open Phantom, Solflare or Backpack`) */
297
+ solanaHint: string;
298
+ /** First step (default: `Scan the code (Solana Pay)`) */
299
+ scanStep: string;
300
+ /** Second step (default: `Approve the amount below`) */
301
+ approveStep: string;
302
+ /** Text alternative of the Solana Pay code: `{amount}` (default: `QR code of a Solana Pay request for {amount}`) */
303
+ solanaCode: string;
304
+ /** While waiting (default: `Waiting for the payment…`) */
305
+ waiting: string;
306
+ /** Why not to pay from an exchange */
307
+ exchangeWarning: string;
308
+ /** Link that opens the request in a wallet app (default: `Open in wallet app`) */
309
+ openInWallet: string;
310
+ /** Heading of the phone hand-off (default: `Pay on your phone`) */
311
+ handoffTitle: string;
312
+ /** Under it */
313
+ handoffHint: string;
314
+ /** Text alternative of the hand-off code (default: `QR code that opens this checkout on your phone`) */
315
+ handoffCode: string;
316
+ /** That this page follows the payment */
317
+ handoffNote: string;
318
+ /** Copies the link of the payment page (default: `Copy link`) */
319
+ copyLink: string;
320
+ /** Link back to the method step (default: `Back to methods`) */
321
+ back: string;
322
+ };
323
+ /** The confirm step: the transaction is on its way. */
324
+ confirm: {
325
+ /** Heading (default: `Confirming your payment`) */
326
+ title: string;
327
+ /** Under the heading: `{network}` (default: `Usually under a minute on {network}.`) */
328
+ hint: string;
329
+ /** First step (default: `Sent`) */
330
+ sent: string;
331
+ /** Second step while it runs (default: `Confirming`) */
332
+ confirming: string;
333
+ /** Second step once the network confirmed the transaction (default: `Confirmed`) */
334
+ confirmed: string;
335
+ /** Last step (default: `Paid`) */
336
+ paid: string;
337
+ /** Last step when the transaction failed (default: `Failed`) */
338
+ failed: string;
339
+ /** Row of the network (default: `Network`) */
340
+ network: string;
341
+ /** Row of the amount (default: `Amount`) */
342
+ amount: string;
343
+ /** Row of the transaction (default: `Transaction`) */
344
+ transaction: string;
345
+ /** Row of the sender (default: `From`) */
346
+ from: string;
347
+ /** That the window may close */
348
+ canClose: string;
349
+ /** Accessible name of the explorer link of the transaction (default: `View on the explorer`) */
350
+ viewOnExplorer: string;
351
+ /** Accessible name of the copy button of the transaction (default: `Copy the transaction`) */
352
+ copyHash: string;
353
+ };
354
+ /** The paid outcome. */
355
+ paid: {
356
+ /** Heading (default: `Payment received`) */
357
+ title: string;
358
+ /** Under the amount: `{network}`, `{date}` (default: `on {network} · {date}`) */
359
+ summary: string;
360
+ /** The receipt card (default: `Receipt`) */
361
+ receipt: string;
362
+ /** Under it (default: `PDF of the payment, also kept by the seller`) */
363
+ receiptHint: string;
364
+ /** Download link of the receipt (default: `Download`) */
365
+ download: string;
366
+ /** A part refunded later: `{amount}`, `{currency}` (default: `Refunded {amount} {currency}`) */
367
+ refunded: string;
368
+ /** Button back to the seller: `{merchant}` (default: `Back to {merchant}`) */
369
+ back: string;
370
+ /** Auto-return countdown: `{merchant}`, `{seconds}` (default: `Returning to {merchant} in {seconds} s`) */
371
+ returning: string;
372
+ /** Stops the auto-return (default: `Stay here`) */
373
+ stay: string;
374
+ /** Button of the automatic payments offer of a subscription (default: `Pay the next periods automatically`) */
375
+ autoPayOffer: string;
376
+ /** When automatic payments are on (default: `Automatic payments are on.`) */
377
+ autoPayActive: string;
378
+ };
379
+ /** The automatic payments offer of a subscription (ERC-7715), after a paid period. */
380
+ autoPay: {
381
+ /** Heading (default: `Pay next periods automatically?`) */
382
+ title: string;
383
+ /** Under it */
384
+ subtitle: string;
385
+ /** Above the limit: `{merchant}` (default: `You allow {merchant} to take`) */
386
+ allow: string;
387
+ /** The limit: `{amount}` with its symbol (default: `up to {amount}`) */
388
+ limit: string;
389
+ /** The period: `{period}` (for example `30 days`) (default: `every {period}`) */
390
+ every: string;
391
+ /** Row of the paying wallet (default: `From`) */
392
+ from: string;
393
+ /** Row of the account that takes the payments (default: `To`) */
394
+ to: string;
395
+ /** Row of the expiry (default: `Valid until`) */
396
+ validUntil: string;
397
+ /** Its value: `{date}` (default: `{date}, or until you cancel`) */
398
+ validUntilValue: string;
399
+ /** First note (default: `Each charge comes with an invoice and a receipt by email.`) */
400
+ invoices: string;
401
+ /** Second note: `{merchant}` (default: `{merchant} can't take more than this limit in a period.`) */
402
+ cap: string;
403
+ /** Third note */
404
+ turnOff: string;
405
+ /** Main button (default: `Allow automatic payments`) */
406
+ confirm: string;
407
+ /** Declines (default: `Not now, I'll pay each invoice`) */
408
+ skip: string;
409
+ /** Under the buttons (default: `Your wallet shows this permission (ERC-7715) before you approve it.`) */
410
+ walletNote: string;
411
+ /** Heading while the wallet asks: `{wallet}` (default: `Approve in {wallet}`) */
412
+ approveIn: string;
413
+ /** The wallet cannot grant it: `{wallet}` (default: `{wallet} can't allow automatic payments.`) */
414
+ unavailable: string;
415
+ };
416
+ /** The outcomes other than paid. */
417
+ outcome: {
418
+ /** Heading of an underpaid invoice (default: `Part of the payment arrived`) */
419
+ underpaidTitle: string;
420
+ /** What arrived: `{received}`, `{total}` (default: `{received} of {total} received.`) */
421
+ underpaidText: string;
422
+ /** What is left: `{rest}`, `{network}` (default: `Send the rest, {rest}, from the same wallet on {network}.`) */
423
+ underpaidRest: string;
424
+ /** Until when: `{merchant}`, `{date}` */
425
+ underpaidNote: string;
426
+ /** Button that pays the rest (default: `Pay the rest`) */
427
+ payRest: string;
428
+ /** Heading of a payment on review: `{merchant}` (default: `Payment received, {merchant} is checking it`) */
429
+ heldTitle: string;
430
+ /** Reason `screening`: `{merchant}` (default: `{merchant} checks the payment before confirming the order.`) */
431
+ heldScreening: string;
432
+ /** Reason `late`: `{merchant}` */
433
+ heldLate: string;
434
+ /** Reason `overpaid`: `{merchant}` */
435
+ heldOverpaid: string;
436
+ /** Under it (default: `The seller contacts you if anything is needed.`) */
437
+ heldNote: string;
438
+ /** Heading of a refunded invoice (default: `Refunded`) */
439
+ refundedTitle: string;
440
+ /** Its text: `{merchant}`, `{amount}`, `{currency}` (default: `{merchant} refunded this invoice: {amount} {currency}.`) */
441
+ refundedText: string;
442
+ /** Heading of an expired invoice (default: `This invoice has expired`) */
443
+ expiredTitle: string;
444
+ /** Its text: `{date}`, `{merchant}` */
445
+ expiredText: string;
446
+ /** Under it */
447
+ expiredNote: string;
448
+ /** Heading of a cancelled invoice (default: `This invoice was cancelled`) */
449
+ cancelledTitle: string;
450
+ /** Its text: `{merchant}` (default: `{merchant} cancelled it; nothing was charged.`) */
451
+ cancelledText: string;
452
+ /** Heading of a corrected invoice: `{merchant}` (default: `{merchant} corrected this invoice`) */
453
+ replacedTitle: string;
454
+ /** Its text: `{number}` of the new invoice (default: `{number} replaces it. This invoice can no longer be paid.`) */
455
+ replacedText: string;
456
+ /** Under it (default: `Already paid? Your payment moved to the new invoice.`) */
457
+ replacedPaid: string;
458
+ /** Opens the new invoice: `{number}` (default: `Open {number}`) */
459
+ openReplacement: string;
460
+ /** Heading when the wallet check refused the payer (default: `This wallet can't pay this invoice`) */
461
+ blockedTitle: string;
462
+ /** Its text: `{merchant}` */
463
+ blockedText: string;
464
+ /** Button that connects another wallet (default: `Use another wallet`) */
465
+ useAnotherWallet: string;
466
+ /** Contacts the seller: `{merchant}` (default: `Contact {merchant}`) */
467
+ contact: string;
468
+ /** Subject of the email to the seller: `{number}` (default: `Invoice {number}`) */
469
+ contactSubject: string;
470
+ };
471
+ /** The question when the buyer closes the checkout before a transaction is sent. */
472
+ leave: {
473
+ /** Heading (default: `Leave the checkout?`) */
474
+ title: string;
475
+ /** Its text: `{date}` */
476
+ text: string;
477
+ /** Its text without a deadline */
478
+ textNoDate: string;
479
+ /** About the locked price (default: `The locked price is released; you get a new one when you come back.`) */
480
+ price: string;
481
+ /** Keeps the checkout open (default: `Stay and pay`) */
482
+ stay: string;
483
+ /** Closes it (default: `Leave`) */
484
+ leave: string;
485
+ };
486
+ /** The order panel: the seller, the deadline, the lines and the total. */
487
+ summary: {
488
+ /** Badge of a test invoice (default: `Test`) */
489
+ test: string;
490
+ /** Accessible description of the test badge */
491
+ testHint: string;
492
+ /** Button that shows the seller details (default: `Seller details`) */
493
+ sellerDetails: string;
494
+ /** Company number of the seller (default: `Company number`) */
495
+ registration: string;
496
+ /** Tax number of the seller (default: `VAT ID`) */
497
+ taxId: string;
498
+ /** Link to the merchant's terms (default: `Terms`) */
499
+ terms: string;
500
+ /** Link to the merchant's refund policy (default: `Refund policy`) */
501
+ refundPolicy: string;
502
+ /** Link to the merchant's privacy notice (default: `Privacy`) */
503
+ privacy: string;
504
+ /** What Quasar is and is not; `{seller}` is the seller's name */
505
+ sellerRole: string;
506
+ /** Above the countdown (default: `Pay within`) */
507
+ payWithin: string;
508
+ /** Under the countdown; `{date}` is the deadline (default: `until {date}`) */
509
+ until: string;
510
+ /** Announced 10 and 5 minutes before the deadline; `{minutes}` (default: `{minutes} minutes left to pay`) */
511
+ minutesLeft: string;
512
+ /** Announced a minute before the deadline (default: `1 minute left to pay`) */
513
+ oneMinuteLeft: string;
514
+ /** Label of the invoice number (default: `Invoice`) */
515
+ invoice: string;
516
+ /** Quantity and unit price of a line: `{quantity}`, `{price}` (default: `{quantity} × {price}`) */
517
+ quantity: string;
518
+ /** Sum of the lines before tax (default: `Subtotal`) */
519
+ subtotal: string;
520
+ /** Tax row; `{rate}` is the rate when all lines share one (default: `VAT {rate}%`) */
521
+ taxRate: string;
522
+ /** Tax row when the lines have different rates (default: `VAT`) */
523
+ tax: string;
524
+ /** Total row (default: `Total`) */
525
+ total: string;
526
+ /** Under the order (default: `Secured by Quasar`) */
527
+ secured: string;
528
+ /** Before the seller's support email (default: `Help`) */
529
+ help: string;
530
+ /** On a phone: the number of lines and the tax; `{count}`, `{tax}` (default: `{count} items · incl. VAT {tax}`) */
531
+ compact: string;
532
+ /** On a phone: button that shows the order (default: `Details`) */
533
+ showOrder: string;
534
+ };
535
+ };
536
+
537
+ /**
538
+ * The languages of the checkout, the six of Quasar documents (plan 12 §6.10), with their names in themselves: the
539
+ * language menu shows `name` with its own `lang`, so a reader finds their language whatever the page shows.
540
+ */
541
+ declare const CHECKOUT_LOCALES: readonly [{
542
+ readonly code: "en";
543
+ readonly name: "English";
544
+ readonly short: "EN";
545
+ }, {
546
+ readonly code: "zh-CN";
547
+ readonly name: "简体中文";
548
+ readonly short: "ZH";
549
+ }, {
550
+ readonly code: "es";
551
+ readonly name: "Español";
552
+ readonly short: "ES";
553
+ }, {
554
+ readonly code: "ru";
555
+ readonly name: "Русский";
556
+ readonly short: "RU";
557
+ }, {
558
+ readonly code: "uk";
559
+ readonly name: "Українська";
560
+ readonly short: "UK";
561
+ }, {
562
+ readonly code: "it";
563
+ readonly name: "Italiano";
564
+ readonly short: "IT";
565
+ }];
566
+ /** A language of the checkout: a BCP 47 tag of {@link CHECKOUT_LOCALES}. */
567
+ type CheckoutLocale = (typeof CHECKOUT_LOCALES)[number]['code'];
568
+ /**
569
+ * The built-in labels of a language.
570
+ *
571
+ * @param locale - A language of the checkout; anything else gets English.
572
+ * @returns The labels.
573
+ */
574
+ declare function labelsForLocale(locale: string | null | undefined): NovaPaymentsLabels;
575
+ /** Labels with some texts of some groups left out, as `labels` of `NovaPaymentsProvider` takes them. */
576
+ type NovaPaymentsLabelOverrides = {
577
+ [Group in keyof NovaPaymentsLabels]?: Partial<NovaPaymentsLabels[Group]>;
578
+ };
579
+ /**
580
+ * Applies overrides to labels group by group: a group without overrides stays the same object.
581
+ *
582
+ * @param labels - The labels of a language.
583
+ * @param overrides - Texts to replace.
584
+ * @returns The labels with the overrides.
585
+ */
586
+ declare function mergeLabels(labels: NovaPaymentsLabels, overrides: NovaPaymentsLabelOverrides | undefined): NovaPaymentsLabels;
587
+
588
+ export { CHECKOUT_LOCALES as C, type NovaPaymentsLabels as N, type CheckoutLocale as a, type NovaPaymentsLabelOverrides as b, labelsForLocale as l, mergeLabels as m };