@solvapay/core 1.2.0 → 1.3.0-preview-e7613cf5668b4f45b2e72a5047d08441e78ebd41

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,327 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * Mirrored from platform/packages/domain/src/financial/tax-jurisdictions.ts.
5
+ * Stripe Tax buyer universe and calculation-affecting tax ID types.
6
+ *
7
+ * Hand-maintained. Keep aligned with:
8
+ * https://docs.stripe.com/tax/supported-countries
9
+ * https://docs.stripe.com/billing/customer/tax-ids
10
+ *
11
+ * This is a *buyer* list. Do not derive it from STRIPE_CONNECT_SUPPORTED_COUNTRIES
12
+ * (the seller allowlist).
13
+ */
14
+ declare const EU_MEMBER_COUNTRIES: readonly ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE"];
15
+ type EuMemberCountry = (typeof EU_MEMBER_COUNTRIES)[number];
16
+ declare const BUYER_COUNTRY_ROWS: readonly [readonly ["AE", "United Arab Emirates"], readonly ["AL", "Albania"], readonly ["AM", "Armenia"], readonly ["AO", "Angola"], readonly ["AT", "Austria"], readonly ["AU", "Australia"], readonly ["AW", "Aruba"], readonly ["AZ", "Azerbaijan"], readonly ["BA", "Bosnia and Herzegovina"], readonly ["BB", "Barbados"], readonly ["BD", "Bangladesh"], readonly ["BE", "Belgium"], readonly ["BF", "Burkina Faso"], readonly ["BG", "Bulgaria"], readonly ["BH", "Bahrain"], readonly ["BJ", "Benin"], readonly ["BS", "Bahamas"], readonly ["BY", "Belarus"], readonly ["CA", "Canada"], readonly ["CD", "Democratic Republic of the Congo"], readonly ["CH", "Switzerland"], readonly ["CL", "Chile"], readonly ["CM", "Cameroon"], readonly ["CO", "Colombia"], readonly ["CR", "Costa Rica"], readonly ["CV", "Cape Verde"], readonly ["CY", "Cyprus"], readonly ["CZ", "Czechia"], readonly ["DE", "Germany"], readonly ["DK", "Denmark"], readonly ["EC", "Ecuador"], readonly ["EE", "Estonia"], readonly ["EG", "Egypt"], readonly ["ES", "Spain"], readonly ["ET", "Ethiopia"], readonly ["FI", "Finland"], readonly ["FR", "France"], readonly ["GB", "United Kingdom"], readonly ["GE", "Georgia"], readonly ["GN", "Guinea"], readonly ["GR", "Greece"], readonly ["HK", "Hong Kong"], readonly ["HR", "Croatia"], readonly ["HU", "Hungary"], readonly ["ID", "Indonesia"], readonly ["IE", "Ireland"], readonly ["IN", "India"], readonly ["IS", "Iceland"], readonly ["IT", "Italy"], readonly ["JP", "Japan"], readonly ["KE", "Kenya"], readonly ["KG", "Kyrgyzstan"], readonly ["KH", "Cambodia"], readonly ["KR", "South Korea"], readonly ["KZ", "Kazakhstan"], readonly ["LA", "Laos"], readonly ["LI", "Liechtenstein"], readonly ["LK", "Sri Lanka"], readonly ["LT", "Lithuania"], readonly ["LU", "Luxembourg"], readonly ["LV", "Latvia"], readonly ["MA", "Morocco"], readonly ["MD", "Moldova"], readonly ["ME", "Montenegro"], readonly ["MK", "North Macedonia"], readonly ["MR", "Mauritania"], readonly ["MT", "Malta"], readonly ["MX", "Mexico"], readonly ["MY", "Malaysia"], readonly ["NG", "Nigeria"], readonly ["NL", "Netherlands"], readonly ["NO", "Norway"], readonly ["NP", "Nepal"], readonly ["NZ", "New Zealand"], readonly ["OM", "Oman"], readonly ["PE", "Peru"], readonly ["PH", "Philippines"], readonly ["PL", "Poland"], readonly ["PR", "Puerto Rico"], readonly ["PT", "Portugal"], readonly ["RO", "Romania"], readonly ["RS", "Serbia"], readonly ["RU", "Russia"], readonly ["SA", "Saudi Arabia"], readonly ["SE", "Sweden"], readonly ["SG", "Singapore"], readonly ["SI", "Slovenia"], readonly ["SK", "Slovakia"], readonly ["SN", "Senegal"], readonly ["SR", "Suriname"], readonly ["TH", "Thailand"], readonly ["TJ", "Tajikistan"], readonly ["TR", "Türkiye"], readonly ["TW", "Taiwan"], readonly ["TZ", "Tanzania"], readonly ["UA", "Ukraine"], readonly ["UG", "Uganda"], readonly ["US", "United States of America"], readonly ["UY", "Uruguay"], readonly ["UZ", "Uzbekistan"], readonly ["VN", "Vietnam"], readonly ["ZA", "South Africa"], readonly ["ZM", "Zambia"], readonly ["ZW", "Zimbabwe"]];
17
+ type StripeTaxBuyerCountry = (typeof BUYER_COUNTRY_ROWS)[number][0];
18
+ declare const SUPPORTED_BUSINESS_COUNTRIES: readonly StripeTaxBuyerCountry[];
19
+ type SupportedBusinessCountry = StripeTaxBuyerCountry;
20
+ declare const BUSINESS_COUNTRY_DISPLAY_NAMES: Record<StripeTaxBuyerCountry, string>;
21
+ declare const TAX_ID_TYPES: readonly ["ae_trn", "al_tin", "am_tin", "ao_tin", "au_abn", "aw_tin", "az_tin", "ba_tin", "bb_tin", "bd_bin", "bf_ifu", "bh_vat", "bj_ifu", "bs_tin", "by_tin", "ca_gst_hst", "cd_nif", "ch_vat", "cl_tin", "cm_niu", "co_nit", "cr_tin", "cv_nif", "ec_ruc", "eg_tin", "et_tin", "eu_vat", "gb_vat", "ge_vat", "gn_nif", "hk_br", "id_npwp", "in_gst", "is_vat", "jp_trn", "ke_pin", "kg_tin", "kh_tin", "kr_brn", "kz_bin", "la_tin", "li_vat", "lk_vat", "ma_vat", "md_vat", "me_pib", "mk_vat", "mr_nif", "mx_rfc", "my_sst", "ng_tin", "no_vat", "np_pan", "nz_gst", "om_vat", "pe_ruc", "ph_tin", "rs_pib", "ru_inn", "sa_vat", "sg_gst", "sn_ninea", "sr_fin", "th_vat", "tj_tin", "tr_tin", "tw_vat", "tz_vat", "ua_vat", "ug_tin", "us_ein", "uy_ruc", "uz_vat", "vn_tin", "za_vat", "zm_tin", "zw_tin"];
22
+ type TaxIdType = (typeof TAX_ID_TYPES)[number];
23
+ /**
24
+ * Calculation-affecting Stripe tax ID type per buyer country.
25
+ * When a country has several types, the one that affects tax calculation wins
26
+ * (jp_trn not jp_cn, ca_gst_hst not ca_bn, au_abn not au_arn, ch_vat not ch_uid,
27
+ * sg_gst not sg_uen, no_vat not no_voec, eu_vat never de_stn / es_cif / …).
28
+ */
29
+ declare const COUNTRY_TO_TAX_ID_TYPE: {
30
+ readonly AE: "ae_trn";
31
+ readonly AL: "al_tin";
32
+ readonly AM: "am_tin";
33
+ readonly AO: "ao_tin";
34
+ readonly AT: "eu_vat";
35
+ readonly AU: "au_abn";
36
+ readonly AW: "aw_tin";
37
+ readonly AZ: "az_tin";
38
+ readonly BA: "ba_tin";
39
+ readonly BB: "bb_tin";
40
+ readonly BD: "bd_bin";
41
+ readonly BE: "eu_vat";
42
+ readonly BF: "bf_ifu";
43
+ readonly BG: "eu_vat";
44
+ readonly BH: "bh_vat";
45
+ readonly BJ: "bj_ifu";
46
+ readonly BS: "bs_tin";
47
+ readonly BY: "by_tin";
48
+ readonly CA: "ca_gst_hst";
49
+ readonly CD: "cd_nif";
50
+ readonly CH: "ch_vat";
51
+ readonly CL: "cl_tin";
52
+ readonly CM: "cm_niu";
53
+ readonly CO: "co_nit";
54
+ readonly CR: "cr_tin";
55
+ readonly CV: "cv_nif";
56
+ readonly CY: "eu_vat";
57
+ readonly CZ: "eu_vat";
58
+ readonly DE: "eu_vat";
59
+ readonly DK: "eu_vat";
60
+ readonly EC: "ec_ruc";
61
+ readonly EE: "eu_vat";
62
+ readonly EG: "eg_tin";
63
+ readonly ES: "eu_vat";
64
+ readonly ET: "et_tin";
65
+ readonly FI: "eu_vat";
66
+ readonly FR: "eu_vat";
67
+ readonly GB: "gb_vat";
68
+ readonly GE: "ge_vat";
69
+ readonly GN: "gn_nif";
70
+ readonly GR: "eu_vat";
71
+ readonly HK: "hk_br";
72
+ readonly HR: "eu_vat";
73
+ readonly HU: "eu_vat";
74
+ readonly ID: "id_npwp";
75
+ readonly IE: "eu_vat";
76
+ readonly IN: "in_gst";
77
+ readonly IS: "is_vat";
78
+ readonly IT: "eu_vat";
79
+ readonly JP: "jp_trn";
80
+ readonly KE: "ke_pin";
81
+ readonly KG: "kg_tin";
82
+ readonly KH: "kh_tin";
83
+ readonly KR: "kr_brn";
84
+ readonly KZ: "kz_bin";
85
+ readonly LA: "la_tin";
86
+ readonly LI: "li_vat";
87
+ readonly LK: "lk_vat";
88
+ readonly LT: "eu_vat";
89
+ readonly LU: "eu_vat";
90
+ readonly LV: "eu_vat";
91
+ readonly MA: "ma_vat";
92
+ readonly MD: "md_vat";
93
+ readonly ME: "me_pib";
94
+ readonly MK: "mk_vat";
95
+ readonly MR: "mr_nif";
96
+ readonly MT: "eu_vat";
97
+ readonly MX: "mx_rfc";
98
+ readonly MY: "my_sst";
99
+ readonly NG: "ng_tin";
100
+ readonly NL: "eu_vat";
101
+ readonly NO: "no_vat";
102
+ readonly NP: "np_pan";
103
+ readonly NZ: "nz_gst";
104
+ readonly OM: "om_vat";
105
+ readonly PE: "pe_ruc";
106
+ readonly PH: "ph_tin";
107
+ readonly PL: "eu_vat";
108
+ readonly PR: "us_ein";
109
+ readonly PT: "eu_vat";
110
+ readonly RO: "eu_vat";
111
+ readonly RS: "rs_pib";
112
+ readonly RU: "ru_inn";
113
+ readonly SA: "sa_vat";
114
+ readonly SE: "eu_vat";
115
+ readonly SG: "sg_gst";
116
+ readonly SI: "eu_vat";
117
+ readonly SK: "eu_vat";
118
+ readonly SN: "sn_ninea";
119
+ readonly SR: "sr_fin";
120
+ readonly TH: "th_vat";
121
+ readonly TJ: "tj_tin";
122
+ readonly TR: "tr_tin";
123
+ readonly TW: "tw_vat";
124
+ readonly TZ: "tz_vat";
125
+ readonly UA: "ua_vat";
126
+ readonly UG: "ug_tin";
127
+ readonly US: "us_ein";
128
+ readonly UY: "uy_ruc";
129
+ readonly UZ: "uz_vat";
130
+ readonly VN: "vn_tin";
131
+ readonly ZA: "za_vat";
132
+ readonly ZM: "zm_tin";
133
+ readonly ZW: "zw_tin";
134
+ };
135
+ declare function deriveTaxIdType(country: StripeTaxBuyerCountry): TaxIdType | undefined;
136
+ declare const TAX_ID_EXAMPLE_BY_COUNTRY: Partial<Record<StripeTaxBuyerCountry, string>>;
137
+ declare const SELLER_TAX_IDENTIFIER_DISPLAY_LABEL_BY_TYPE: Partial<Record<TaxIdType, string>>;
138
+ declare function getTaxIdFieldLabel(country: StripeTaxBuyerCountry): string;
139
+ declare function getTaxIdExample(country: StripeTaxBuyerCountry): string;
140
+ declare function getTaxIdHelperText(country: StripeTaxBuyerCountry): string;
141
+
142
+ type BusinessCountryOption = {
143
+ value: SupportedBusinessCountry;
144
+ label: string;
145
+ };
146
+ declare const BUSINESS_COUNTRY_OPTIONS: BusinessCountryOption[];
147
+ declare const BusinessDetailsSchema: z.ZodPipe<z.ZodObject<{
148
+ isBusiness: z.ZodBoolean;
149
+ businessName: z.ZodOptional<z.ZodString>;
150
+ country: z.ZodOptional<z.ZodString>;
151
+ customerCountry: z.ZodOptional<z.ZodString>;
152
+ customerName: z.ZodOptional<z.ZodString>;
153
+ taxId: z.ZodOptional<z.ZodString>;
154
+ taxIdType: z.ZodOptional<z.ZodEnum<{
155
+ ae_trn: "ae_trn";
156
+ al_tin: "al_tin";
157
+ am_tin: "am_tin";
158
+ ao_tin: "ao_tin";
159
+ au_abn: "au_abn";
160
+ aw_tin: "aw_tin";
161
+ az_tin: "az_tin";
162
+ ba_tin: "ba_tin";
163
+ bb_tin: "bb_tin";
164
+ bd_bin: "bd_bin";
165
+ bf_ifu: "bf_ifu";
166
+ bh_vat: "bh_vat";
167
+ bj_ifu: "bj_ifu";
168
+ bs_tin: "bs_tin";
169
+ by_tin: "by_tin";
170
+ ca_gst_hst: "ca_gst_hst";
171
+ cd_nif: "cd_nif";
172
+ ch_vat: "ch_vat";
173
+ cl_tin: "cl_tin";
174
+ cm_niu: "cm_niu";
175
+ co_nit: "co_nit";
176
+ cr_tin: "cr_tin";
177
+ cv_nif: "cv_nif";
178
+ ec_ruc: "ec_ruc";
179
+ eg_tin: "eg_tin";
180
+ et_tin: "et_tin";
181
+ eu_vat: "eu_vat";
182
+ gb_vat: "gb_vat";
183
+ ge_vat: "ge_vat";
184
+ gn_nif: "gn_nif";
185
+ hk_br: "hk_br";
186
+ id_npwp: "id_npwp";
187
+ in_gst: "in_gst";
188
+ is_vat: "is_vat";
189
+ jp_trn: "jp_trn";
190
+ ke_pin: "ke_pin";
191
+ kg_tin: "kg_tin";
192
+ kh_tin: "kh_tin";
193
+ kr_brn: "kr_brn";
194
+ kz_bin: "kz_bin";
195
+ la_tin: "la_tin";
196
+ li_vat: "li_vat";
197
+ lk_vat: "lk_vat";
198
+ ma_vat: "ma_vat";
199
+ md_vat: "md_vat";
200
+ me_pib: "me_pib";
201
+ mk_vat: "mk_vat";
202
+ mr_nif: "mr_nif";
203
+ mx_rfc: "mx_rfc";
204
+ my_sst: "my_sst";
205
+ ng_tin: "ng_tin";
206
+ no_vat: "no_vat";
207
+ np_pan: "np_pan";
208
+ nz_gst: "nz_gst";
209
+ om_vat: "om_vat";
210
+ pe_ruc: "pe_ruc";
211
+ ph_tin: "ph_tin";
212
+ rs_pib: "rs_pib";
213
+ ru_inn: "ru_inn";
214
+ sa_vat: "sa_vat";
215
+ sg_gst: "sg_gst";
216
+ sn_ninea: "sn_ninea";
217
+ sr_fin: "sr_fin";
218
+ th_vat: "th_vat";
219
+ tj_tin: "tj_tin";
220
+ tr_tin: "tr_tin";
221
+ tw_vat: "tw_vat";
222
+ tz_vat: "tz_vat";
223
+ ua_vat: "ua_vat";
224
+ ug_tin: "ug_tin";
225
+ us_ein: "us_ein";
226
+ uy_ruc: "uy_ruc";
227
+ uz_vat: "uz_vat";
228
+ vn_tin: "vn_tin";
229
+ za_vat: "za_vat";
230
+ zm_tin: "zm_tin";
231
+ zw_tin: "zw_tin";
232
+ }>>;
233
+ }, z.core.$strip>, z.ZodTransform<{
234
+ customerName?: string | undefined;
235
+ isBusiness: false;
236
+ customerCountry: "AT" | "BE" | "BG" | "HR" | "CY" | "CZ" | "DK" | "EE" | "FI" | "FR" | "DE" | "GR" | "HU" | "IE" | "IT" | "LV" | "LT" | "LU" | "MT" | "NL" | "PL" | "PT" | "RO" | "SK" | "SI" | "ES" | "SE" | "AE" | "AL" | "AM" | "AO" | "AU" | "AW" | "AZ" | "BA" | "BB" | "BD" | "BF" | "BH" | "BJ" | "BS" | "BY" | "CA" | "CD" | "CH" | "CL" | "CM" | "CO" | "CR" | "CV" | "EC" | "EG" | "ET" | "GB" | "GE" | "GN" | "HK" | "ID" | "IN" | "IS" | "JP" | "KE" | "KG" | "KH" | "KR" | "KZ" | "LA" | "LI" | "LK" | "MA" | "MD" | "ME" | "MK" | "MR" | "MX" | "MY" | "NG" | "NO" | "NP" | "NZ" | "OM" | "PE" | "PH" | "PR" | "RS" | "RU" | "SA" | "SG" | "SN" | "SR" | "TH" | "TJ" | "TR" | "TW" | "TZ" | "UA" | "UG" | "US" | "UY" | "UZ" | "VN" | "ZA" | "ZM" | "ZW";
237
+ } | {
238
+ customerName?: string | undefined;
239
+ isBusiness: false;
240
+ } | {
241
+ customerName?: string | undefined;
242
+ taxIdType?: "ae_trn" | "al_tin" | "am_tin" | "ao_tin" | "au_abn" | "aw_tin" | "az_tin" | "ba_tin" | "bb_tin" | "bd_bin" | "bf_ifu" | "bh_vat" | "bj_ifu" | "bs_tin" | "by_tin" | "ca_gst_hst" | "cd_nif" | "ch_vat" | "cl_tin" | "cm_niu" | "co_nit" | "cr_tin" | "cv_nif" | "ec_ruc" | "eg_tin" | "et_tin" | "eu_vat" | "gb_vat" | "ge_vat" | "gn_nif" | "hk_br" | "id_npwp" | "in_gst" | "is_vat" | "jp_trn" | "ke_pin" | "kg_tin" | "kh_tin" | "kr_brn" | "kz_bin" | "la_tin" | "li_vat" | "lk_vat" | "ma_vat" | "md_vat" | "me_pib" | "mk_vat" | "mr_nif" | "mx_rfc" | "my_sst" | "ng_tin" | "no_vat" | "np_pan" | "nz_gst" | "om_vat" | "pe_ruc" | "ph_tin" | "rs_pib" | "ru_inn" | "sa_vat" | "sg_gst" | "sn_ninea" | "sr_fin" | "th_vat" | "tj_tin" | "tr_tin" | "tw_vat" | "tz_vat" | "ua_vat" | "ug_tin" | "us_ein" | "uy_ruc" | "uz_vat" | "vn_tin" | "za_vat" | "zm_tin" | "zw_tin" | undefined;
243
+ taxId?: string | undefined;
244
+ businessName?: string | undefined;
245
+ isBusiness: true;
246
+ country: "AT" | "BE" | "BG" | "HR" | "CY" | "CZ" | "DK" | "EE" | "FI" | "FR" | "DE" | "GR" | "HU" | "IE" | "IT" | "LV" | "LT" | "LU" | "MT" | "NL" | "PL" | "PT" | "RO" | "SK" | "SI" | "ES" | "SE" | "AE" | "AL" | "AM" | "AO" | "AU" | "AW" | "AZ" | "BA" | "BB" | "BD" | "BF" | "BH" | "BJ" | "BS" | "BY" | "CA" | "CD" | "CH" | "CL" | "CM" | "CO" | "CR" | "CV" | "EC" | "EG" | "ET" | "GB" | "GE" | "GN" | "HK" | "ID" | "IN" | "IS" | "JP" | "KE" | "KG" | "KH" | "KR" | "KZ" | "LA" | "LI" | "LK" | "MA" | "MD" | "ME" | "MK" | "MR" | "MX" | "MY" | "NG" | "NO" | "NP" | "NZ" | "OM" | "PE" | "PH" | "PR" | "RS" | "RU" | "SA" | "SG" | "SN" | "SR" | "TH" | "TJ" | "TR" | "TW" | "TZ" | "UA" | "UG" | "US" | "UY" | "UZ" | "VN" | "ZA" | "ZM" | "ZW";
247
+ }, {
248
+ isBusiness: boolean;
249
+ businessName?: string | undefined;
250
+ country?: string | undefined;
251
+ customerCountry?: string | undefined;
252
+ customerName?: string | undefined;
253
+ taxId?: string | undefined;
254
+ taxIdType?: "ae_trn" | "al_tin" | "am_tin" | "ao_tin" | "au_abn" | "aw_tin" | "az_tin" | "ba_tin" | "bb_tin" | "bd_bin" | "bf_ifu" | "bh_vat" | "bj_ifu" | "bs_tin" | "by_tin" | "ca_gst_hst" | "cd_nif" | "ch_vat" | "cl_tin" | "cm_niu" | "co_nit" | "cr_tin" | "cv_nif" | "ec_ruc" | "eg_tin" | "et_tin" | "eu_vat" | "gb_vat" | "ge_vat" | "gn_nif" | "hk_br" | "id_npwp" | "in_gst" | "is_vat" | "jp_trn" | "ke_pin" | "kg_tin" | "kh_tin" | "kr_brn" | "kz_bin" | "la_tin" | "li_vat" | "lk_vat" | "ma_vat" | "md_vat" | "me_pib" | "mk_vat" | "mr_nif" | "mx_rfc" | "my_sst" | "ng_tin" | "no_vat" | "np_pan" | "nz_gst" | "om_vat" | "pe_ruc" | "ph_tin" | "rs_pib" | "ru_inn" | "sa_vat" | "sg_gst" | "sn_ninea" | "sr_fin" | "th_vat" | "tj_tin" | "tr_tin" | "tw_vat" | "tz_vat" | "ua_vat" | "ug_tin" | "us_ein" | "uy_ruc" | "uz_vat" | "vn_tin" | "za_vat" | "zm_tin" | "zw_tin" | undefined;
255
+ }>>;
256
+ type BusinessDetailsInput = {
257
+ isBusiness: boolean;
258
+ businessName?: string;
259
+ country?: string;
260
+ customerCountry?: string;
261
+ customerName?: string;
262
+ taxId?: string;
263
+ taxIdType?: TaxIdType;
264
+ };
265
+ type BusinessDetails = {
266
+ isBusiness: false;
267
+ customerCountry?: SupportedBusinessCountry;
268
+ customerName?: string;
269
+ } | {
270
+ isBusiness: true;
271
+ country: SupportedBusinessCountry;
272
+ businessName?: string;
273
+ taxId?: string;
274
+ taxIdType?: TaxIdType;
275
+ customerName?: string;
276
+ };
277
+ type BusinessDetailsValidationIssue = {
278
+ path: PropertyKey[];
279
+ message: string;
280
+ };
281
+ type BusinessDetailsValidationError = {
282
+ issues: BusinessDetailsValidationIssue[];
283
+ };
284
+ type ValidateBusinessDetailsResult = {
285
+ success: true;
286
+ data: BusinessDetails;
287
+ } | {
288
+ success: false;
289
+ error: BusinessDetailsValidationError;
290
+ };
291
+ declare function validateBusinessDetails(input: BusinessDetailsInput): ValidateBusinessDetailsResult;
292
+ declare const TAX_BEHAVIORS: readonly ["auto", "inclusive", "exclusive"];
293
+ type TaxBehavior = (typeof TAX_BEHAVIORS)[number];
294
+ declare const TAX_EXCLUSIVE_CURRENCIES: readonly ["USD", "CAD"];
295
+ declare function resolveTaxBehavior(behavior: TaxBehavior, currency: string): 'inclusive' | 'exclusive';
296
+ type TaxBreakdown = {
297
+ subtotal: number;
298
+ taxAmount: number;
299
+ taxRate: number;
300
+ treatment: 'reverse_charge' | 'standard' | 'none' | 'not_collecting' | 'not_supported';
301
+ total: number;
302
+ currency: string;
303
+ inclusive: boolean;
304
+ };
305
+
306
+ /**
307
+ * Country-aware seller identity display resolver.
308
+ * Presentation-only — maps stored identifiers to labeled rows for seller cards and receipts.
309
+ */
310
+
311
+ type SellerIdentityRow = {
312
+ label: string;
313
+ value: string;
314
+ };
315
+ type SellerIdentityDisplay = {
316
+ taxIdentifier: SellerIdentityRow | null;
317
+ companyNumber: SellerIdentityRow | null;
318
+ };
319
+ declare function getSellerTaxIdentifierDisplayLabel(country: string | null | undefined): string;
320
+ declare function resolveSellerIdentityDisplay(input: {
321
+ country?: string | null;
322
+ vatNumber?: string | null;
323
+ taxId?: string | null;
324
+ companyNumber?: string | null;
325
+ }): SellerIdentityDisplay;
326
+
327
+ export { BUSINESS_COUNTRY_DISPLAY_NAMES as B, COUNTRY_TO_TAX_ID_TYPE as C, type EuMemberCountry as E, SELLER_TAX_IDENTIFIER_DISPLAY_LABEL_BY_TYPE as S, TAX_BEHAVIORS as T, type ValidateBusinessDetailsResult as V, BUSINESS_COUNTRY_OPTIONS as a, type BusinessCountryOption as b, type BusinessDetails as c, type BusinessDetailsInput as d, BusinessDetailsSchema as e, type BusinessDetailsValidationError as f, type BusinessDetailsValidationIssue as g, SUPPORTED_BUSINESS_COUNTRIES as h, type SellerIdentityDisplay as i, type SellerIdentityRow as j, type SupportedBusinessCountry as k, TAX_EXCLUSIVE_CURRENCIES as l, TAX_ID_EXAMPLE_BY_COUNTRY as m, TAX_ID_TYPES as n, type TaxBehavior as o, type TaxBreakdown as p, type TaxIdType as q, deriveTaxIdType as r, getSellerTaxIdentifierDisplayLabel as s, getTaxIdExample as t, getTaxIdFieldLabel as u, getTaxIdHelperText as v, resolveSellerIdentityDisplay as w, resolveTaxBehavior as x, validateBusinessDetails as y };