@gomusdev/web-components 0.0.19 → 0.0.21

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.
Files changed (51) hide show
  1. package/dist-js/components/cart/lib/CartItem.d.ts +135 -0
  2. package/dist-js/components/cart/lib/cart.svelte.d.ts +563 -24
  3. package/dist-js/components/cart/lib/localStorage.svelte.d.ts +146 -0
  4. package/dist-js/components/cart/mocks/gomusTicketMocks.d.ts +112 -0
  5. package/dist-js/components/ticketSelection/SpecUtils.d.ts +3 -0
  6. package/dist-js/components/ticketSelection/{lib.svelte.d.ts → TicketSelectionDetails.svelte.d.ts} +10 -7
  7. package/dist-js/components/ticketSelection/subcomponents/addToCartButton/AddToCartButton.svelte.d.ts +6 -0
  8. package/dist-js/components/ticketSelection/subcomponents/addToCartButton/AddToCartButton.svelte.spec.d.ts +1 -0
  9. package/dist-js/components/ticketSelection/subcomponents/addToCartButton/entry.d.ts +0 -0
  10. package/dist-js/components/ticketSelection/subcomponents/calendar/lib/calendar.svelte.d.ts +1 -4
  11. package/dist-js/components/ticketSelection/subcomponents/tickets/Tickets.spec.d.ts +1 -0
  12. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/TicketGroup.svelte.d.ts +626 -0
  13. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/TicketsSum.svelte.d.ts +1 -0
  14. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/addToCartButton/entry.d.ts +0 -0
  15. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/utils.spec.d.ts +1 -0
  16. package/dist-js/components/ticketSelection/subcomponents/tickets/subcomponents/utils.svelte.d.ts +9 -0
  17. package/dist-js/components/ticketSelection/subcomponents/timeslots/lib/__mocks__/generateAvailableTimeSlots.d.ts +8 -0
  18. package/dist-js/components/ticketSelection/subcomponents/timeslots/lib/generateAvailableTimeSlots.specs.d.ts +1 -121
  19. package/dist-js/components/ticketSelection/subcomponents/timeslots/lib/lib.svelte.d.ts +1 -1
  20. package/dist-js/config/config.d.ts +11 -0
  21. package/dist-js/config/config.spec.d.ts +1 -0
  22. package/dist-js/gomus-webcomponents.css +159 -0
  23. package/dist-js/gomus-webcomponents.iife.js +2085 -2590
  24. package/dist-js/gomus-webcomponents.js +2082 -2587
  25. package/dist-js/lib/gomusTicket.spec.d.ts +1 -0
  26. package/dist-js/lib/gomusTicket.svelte.d.ts +122 -0
  27. package/dist-js/lib/helpers/PropertyTracker.d.ts +9 -0
  28. package/dist-js/lib/helpers/PropertyTracker.spec.d.ts +1 -0
  29. package/dist-js/lib/helpers/utils.d.ts +1 -0
  30. package/dist-js/lib/stores/shop.svelte.d.ts +55 -1
  31. package/dist-js/lib/stores/shop.svelte.test.d.ts +1 -3
  32. package/dist-js/lib/vitest/msw/handlers.d.ts +1 -1
  33. package/dist-js/mocks/ShopMocks.d.ts +179 -0
  34. package/dist-js/mocks/mocks.d.ts +1922 -0
  35. package/package.json +5 -1
  36. package/dist-js/components/cart/lib/lib.d.ts +0 -3
  37. package/dist-js/components/cart/mocks/gomusTickets.d.ts +0 -56
  38. package/dist-js/components/ticketSelection/subcomponents/checkoutButton/lib/lib.svelte.d.ts +0 -6
  39. package/dist-js/components/ticketSelection/subcomponents/tickets/lib/lib.svelte.d.ts +0 -9
  40. package/dist-js/lib/gomusTickets.svelte.d.ts +0 -47
  41. /package/dist-js/components/cart/{lib/cart.spec.d.ts → components/Cart.spec.d.ts} +0 -0
  42. /package/dist-js/components/{ticketSelection/lib.spec.d.ts → cart/lib/cart.svelte.spec.d.ts} +0 -0
  43. /package/dist-js/components/{ticketSelection/subcomponents/tickets/components/Tickets.spec.d.ts → cart/lib/localStorage.spec.d.ts} +0 -0
  44. /package/dist-js/components/{cart/components/items/Ticket.svelte.d.ts → if/If.svelte.d.ts} +0 -0
  45. /package/dist-js/components/{ticketSelection/subcomponents/checkoutButton → if}/entry.d.ts +0 -0
  46. /package/dist-js/{lib/gomusTickets.spec.d.ts → components/ticketSelection/TicketSelectionDetails.spec.d.ts} +0 -0
  47. /package/dist-js/{lib/helpers/reactivity.svelte.test.d.ts → components/ticketSelection/subcomponents/addToCartButton/AddToCartButton.spec.d.ts} +0 -0
  48. /package/dist-js/components/ticketSelection/subcomponents/tickets/{components/Tickets.svelte.d.ts → Tickets.svelte.d.ts} +0 -0
  49. /package/dist-js/components/ticketSelection/subcomponents/tickets/{components/fixtures → fixtures}/ticketFixtures.d.ts +0 -0
  50. /package/dist-js/components/ticketSelection/{SelectionTotal.svelte.d.ts → subcomponents/tickets/subcomponents/GroupBody.svelte.d.ts} +0 -0
  51. /package/dist-js/components/ticketSelection/subcomponents/{checkoutButton/components/CheckoutButton.svelte.d.ts → tickets/subcomponents/GroupSum.svelte.d.ts} +0 -0
@@ -1,25 +1,564 @@
1
- import { GomusTicket } from '../../../lib/gomusTickets.svelte.ts';
2
- import { components } from '@gomus/types';
3
- import { ZonedDateTime } from '@internationalized/date';
4
- type CartItemAttributes = components['schemas']['ticket_time_slot_cart_item']['attributes'] | components['schemas']['ticket_normal_cart_item']['attributes'];
5
- export type OrderItemType = 'Booking' | 'Booking Seat' | 'Ticket' | 'Coupon' | 'Coupon Redemption' | 'Merchandise' | 'Accounting Article';
6
- export declare class CartItem {
7
- type: OrderItemType;
8
- attributes: CartItemAttributes;
9
- item: GomusTicket;
10
- updatedAt: ZonedDateTime;
11
- uuid: string;
12
- constructor(ticket: GomusTicket, type: OrderItemType);
13
- updateQuantity(quantity: number): void;
14
- }
15
- export declare class Cart {
16
- items: CartItem[];
17
- total: string | 0;
18
- constructor();
1
+ import { CartItem } from './CartItem.ts';
2
+ import { UITicket } from '../../../lib/gomusTicket.svelte.ts';
3
+ export type Cart = ReturnType<typeof createCart>;
4
+ export declare function createCart(tickets?: UITicket[], options?: {
5
+ syncLocalStorage: boolean;
6
+ }): {
7
+ items: {
8
+ type: import('./CartItem.ts').OrderItemType;
9
+ item: {
10
+ type: "annual" | "timeslot" | "day";
11
+ shop_order: number;
12
+ max_capacity: number;
13
+ min_quantity: number;
14
+ max_quantity: number;
15
+ minAvailableCapacity: number;
16
+ selectedTime: string;
17
+ quantity: number;
18
+ id: number;
19
+ title: string;
20
+ ticket_type: "time_slot" | "annual" | "normal";
21
+ bookable: boolean;
22
+ museum_ids: number[];
23
+ exhibition_ids: number[];
24
+ price_cents: number;
25
+ discount: number;
26
+ vat_pct: number;
27
+ tax_included: boolean;
28
+ entry_duration: number | null;
29
+ min_persons: number;
30
+ max_persons: number;
31
+ quota_ids: number[];
32
+ first_entry: number;
33
+ last_entry: number;
34
+ personalizeable: boolean;
35
+ attendees: boolean | string;
36
+ identification: boolean | string;
37
+ free_timing: boolean;
38
+ is_collective: boolean;
39
+ is_upgrade: boolean;
40
+ is_mantle: boolean;
41
+ description: string | null;
42
+ sub_ticket_ids: number[];
43
+ sub_tickets: {
44
+ [key: string]: {
45
+ title?: string;
46
+ min_persons?: number;
47
+ max_persons?: number;
48
+ description?: string | null;
49
+ };
50
+ } | null;
51
+ is_sub_ticket: boolean;
52
+ created_at: string;
53
+ updated_at: string;
54
+ shipped_with_merchandise_id: number | null;
55
+ restricted_shop_account: boolean;
56
+ cash_point_order: number;
57
+ capacities: {
58
+ [key: string]: number;
59
+ };
60
+ total_capacities: {
61
+ [key: string]: number;
62
+ };
63
+ max_total_capacity: number;
64
+ dynamic_prices: {
65
+ [key: string]: number;
66
+ } | null;
67
+ uid: number;
68
+ } | {
69
+ type: "annual" | "timeslot" | "day";
70
+ shop_order: number;
71
+ max_capacity: number;
72
+ min_quantity: number;
73
+ max_quantity: number;
74
+ minAvailableCapacity: number;
75
+ selectedTime: string;
76
+ quantity: number;
77
+ id: number;
78
+ title: string;
79
+ ticket_type: "time_slot" | "annual" | "normal";
80
+ bookable: boolean;
81
+ museum_ids: number[];
82
+ exhibition_ids: number[];
83
+ price_cents: number;
84
+ discount: number;
85
+ vat_pct: number;
86
+ tax_included: boolean;
87
+ entry_duration: number | null;
88
+ min_persons: number;
89
+ max_persons: number;
90
+ quota_ids: number[];
91
+ first_entry: number;
92
+ last_entry: number;
93
+ personalizeable: boolean;
94
+ attendees: boolean | string;
95
+ identification: boolean | string;
96
+ free_timing: boolean;
97
+ is_collective: boolean;
98
+ is_upgrade: boolean;
99
+ is_mantle: boolean;
100
+ description: string | null;
101
+ sub_ticket_ids: number[];
102
+ sub_tickets: {
103
+ [key: string]: {
104
+ title?: string;
105
+ min_persons?: number;
106
+ max_persons?: number;
107
+ description?: string | null;
108
+ };
109
+ } | null;
110
+ is_sub_ticket: boolean;
111
+ created_at: string;
112
+ updated_at: string;
113
+ shipped_with_merchandise_id: number | null;
114
+ restricted_shop_account: boolean;
115
+ cash_point_order: number;
116
+ dynamic_prices: {
117
+ [key: string]: number;
118
+ } | null;
119
+ uid: number;
120
+ };
121
+ attributes: {
122
+ id: number;
123
+ time: string;
124
+ quantity: number;
125
+ shipped_with_merchandise_id?: number | null;
126
+ } | {
127
+ id: number;
128
+ time: string;
129
+ quantity: number;
130
+ shipped_with_merchandise_id?: number | null;
131
+ };
132
+ uuid: string;
133
+ price_cents: number;
134
+ price_formatted: string;
135
+ final_price_cents: number;
136
+ final_price_formatted: string;
137
+ total_price_cents: number;
138
+ total_price_formatted: string;
139
+ quantity: number;
140
+ time: string;
141
+ }[];
142
+ uid: string;
143
+ readonly nonEmptyItems: {
144
+ type: import('./CartItem.ts').OrderItemType;
145
+ item: {
146
+ type: "annual" | "timeslot" | "day";
147
+ shop_order: number;
148
+ max_capacity: number;
149
+ min_quantity: number;
150
+ max_quantity: number;
151
+ minAvailableCapacity: number;
152
+ selectedTime: string;
153
+ quantity: number;
154
+ id: number;
155
+ title: string;
156
+ ticket_type: "time_slot" | "annual" | "normal";
157
+ bookable: boolean;
158
+ museum_ids: number[];
159
+ exhibition_ids: number[];
160
+ price_cents: number;
161
+ discount: number;
162
+ vat_pct: number;
163
+ tax_included: boolean;
164
+ entry_duration: number | null;
165
+ min_persons: number;
166
+ max_persons: number;
167
+ quota_ids: number[];
168
+ first_entry: number;
169
+ last_entry: number;
170
+ personalizeable: boolean;
171
+ attendees: boolean | string;
172
+ identification: boolean | string;
173
+ free_timing: boolean;
174
+ is_collective: boolean;
175
+ is_upgrade: boolean;
176
+ is_mantle: boolean;
177
+ description: string | null;
178
+ sub_ticket_ids: number[];
179
+ sub_tickets: {
180
+ [key: string]: {
181
+ title?: string;
182
+ min_persons?: number;
183
+ max_persons?: number;
184
+ description?: string | null;
185
+ };
186
+ } | null;
187
+ is_sub_ticket: boolean;
188
+ created_at: string;
189
+ updated_at: string;
190
+ shipped_with_merchandise_id: number | null;
191
+ restricted_shop_account: boolean;
192
+ cash_point_order: number;
193
+ capacities: {
194
+ [key: string]: number;
195
+ };
196
+ total_capacities: {
197
+ [key: string]: number;
198
+ };
199
+ max_total_capacity: number;
200
+ dynamic_prices: {
201
+ [key: string]: number;
202
+ } | null;
203
+ uid: number;
204
+ } | {
205
+ type: "annual" | "timeslot" | "day";
206
+ shop_order: number;
207
+ max_capacity: number;
208
+ min_quantity: number;
209
+ max_quantity: number;
210
+ minAvailableCapacity: number;
211
+ selectedTime: string;
212
+ quantity: number;
213
+ id: number;
214
+ title: string;
215
+ ticket_type: "time_slot" | "annual" | "normal";
216
+ bookable: boolean;
217
+ museum_ids: number[];
218
+ exhibition_ids: number[];
219
+ price_cents: number;
220
+ discount: number;
221
+ vat_pct: number;
222
+ tax_included: boolean;
223
+ entry_duration: number | null;
224
+ min_persons: number;
225
+ max_persons: number;
226
+ quota_ids: number[];
227
+ first_entry: number;
228
+ last_entry: number;
229
+ personalizeable: boolean;
230
+ attendees: boolean | string;
231
+ identification: boolean | string;
232
+ free_timing: boolean;
233
+ is_collective: boolean;
234
+ is_upgrade: boolean;
235
+ is_mantle: boolean;
236
+ description: string | null;
237
+ sub_ticket_ids: number[];
238
+ sub_tickets: {
239
+ [key: string]: {
240
+ title?: string;
241
+ min_persons?: number;
242
+ max_persons?: number;
243
+ description?: string | null;
244
+ };
245
+ } | null;
246
+ is_sub_ticket: boolean;
247
+ created_at: string;
248
+ updated_at: string;
249
+ shipped_with_merchandise_id: number | null;
250
+ restricted_shop_account: boolean;
251
+ cash_point_order: number;
252
+ dynamic_prices: {
253
+ [key: string]: number;
254
+ } | null;
255
+ uid: number;
256
+ };
257
+ attributes: {
258
+ id: number;
259
+ time: string;
260
+ quantity: number;
261
+ shipped_with_merchandise_id?: number | null;
262
+ } | {
263
+ id: number;
264
+ time: string;
265
+ quantity: number;
266
+ shipped_with_merchandise_id?: number | null;
267
+ };
268
+ uuid: string;
269
+ price_cents: number;
270
+ price_formatted: string;
271
+ final_price_cents: number;
272
+ final_price_formatted: string;
273
+ total_price_cents: number;
274
+ total_price_formatted: string;
275
+ quantity: number;
276
+ time: string;
277
+ }[];
278
+ readonly totalPriceCents: number;
279
+ readonly totalFormatted: string;
280
+ clearItems(): void;
19
281
  deleteItem(item: CartItem): void;
20
- updateCartItem(item: CartItem, quantity: number): void;
21
- addToCart(items: CartItem[], url?: string): void;
22
- private setLocalStorage;
23
- }
24
- export declare const cart: Cart;
25
- export {};
282
+ addItem(item: CartItem): void;
283
+ addItems(items: CartItem[]): void;
284
+ };
285
+ export declare const cart: {
286
+ items: {
287
+ type: import('./CartItem.ts').OrderItemType;
288
+ item: {
289
+ type: "annual" | "timeslot" | "day";
290
+ shop_order: number;
291
+ max_capacity: number;
292
+ min_quantity: number;
293
+ max_quantity: number;
294
+ minAvailableCapacity: number;
295
+ selectedTime: string;
296
+ quantity: number;
297
+ id: number;
298
+ title: string;
299
+ ticket_type: "time_slot" | "annual" | "normal";
300
+ bookable: boolean;
301
+ museum_ids: number[];
302
+ exhibition_ids: number[];
303
+ price_cents: number;
304
+ discount: number;
305
+ vat_pct: number;
306
+ tax_included: boolean;
307
+ entry_duration: number | null;
308
+ min_persons: number;
309
+ max_persons: number;
310
+ quota_ids: number[];
311
+ first_entry: number;
312
+ last_entry: number;
313
+ personalizeable: boolean;
314
+ attendees: boolean | string;
315
+ identification: boolean | string;
316
+ free_timing: boolean;
317
+ is_collective: boolean;
318
+ is_upgrade: boolean;
319
+ is_mantle: boolean;
320
+ description: string | null;
321
+ sub_ticket_ids: number[];
322
+ sub_tickets: {
323
+ [key: string]: {
324
+ title?: string;
325
+ min_persons?: number;
326
+ max_persons?: number;
327
+ description?: string | null;
328
+ };
329
+ } | null;
330
+ is_sub_ticket: boolean;
331
+ created_at: string;
332
+ updated_at: string;
333
+ shipped_with_merchandise_id: number | null;
334
+ restricted_shop_account: boolean;
335
+ cash_point_order: number;
336
+ capacities: {
337
+ [key: string]: number;
338
+ };
339
+ total_capacities: {
340
+ [key: string]: number;
341
+ };
342
+ max_total_capacity: number;
343
+ dynamic_prices: {
344
+ [key: string]: number;
345
+ } | null;
346
+ uid: number;
347
+ } | {
348
+ type: "annual" | "timeslot" | "day";
349
+ shop_order: number;
350
+ max_capacity: number;
351
+ min_quantity: number;
352
+ max_quantity: number;
353
+ minAvailableCapacity: number;
354
+ selectedTime: string;
355
+ quantity: number;
356
+ id: number;
357
+ title: string;
358
+ ticket_type: "time_slot" | "annual" | "normal";
359
+ bookable: boolean;
360
+ museum_ids: number[];
361
+ exhibition_ids: number[];
362
+ price_cents: number;
363
+ discount: number;
364
+ vat_pct: number;
365
+ tax_included: boolean;
366
+ entry_duration: number | null;
367
+ min_persons: number;
368
+ max_persons: number;
369
+ quota_ids: number[];
370
+ first_entry: number;
371
+ last_entry: number;
372
+ personalizeable: boolean;
373
+ attendees: boolean | string;
374
+ identification: boolean | string;
375
+ free_timing: boolean;
376
+ is_collective: boolean;
377
+ is_upgrade: boolean;
378
+ is_mantle: boolean;
379
+ description: string | null;
380
+ sub_ticket_ids: number[];
381
+ sub_tickets: {
382
+ [key: string]: {
383
+ title?: string;
384
+ min_persons?: number;
385
+ max_persons?: number;
386
+ description?: string | null;
387
+ };
388
+ } | null;
389
+ is_sub_ticket: boolean;
390
+ created_at: string;
391
+ updated_at: string;
392
+ shipped_with_merchandise_id: number | null;
393
+ restricted_shop_account: boolean;
394
+ cash_point_order: number;
395
+ dynamic_prices: {
396
+ [key: string]: number;
397
+ } | null;
398
+ uid: number;
399
+ };
400
+ attributes: {
401
+ id: number;
402
+ time: string;
403
+ quantity: number;
404
+ shipped_with_merchandise_id?: number | null;
405
+ } | {
406
+ id: number;
407
+ time: string;
408
+ quantity: number;
409
+ shipped_with_merchandise_id?: number | null;
410
+ };
411
+ uuid: string;
412
+ price_cents: number;
413
+ price_formatted: string;
414
+ final_price_cents: number;
415
+ final_price_formatted: string;
416
+ total_price_cents: number;
417
+ total_price_formatted: string;
418
+ quantity: number;
419
+ time: string;
420
+ }[];
421
+ uid: string;
422
+ readonly nonEmptyItems: {
423
+ type: import('./CartItem.ts').OrderItemType;
424
+ item: {
425
+ type: "annual" | "timeslot" | "day";
426
+ shop_order: number;
427
+ max_capacity: number;
428
+ min_quantity: number;
429
+ max_quantity: number;
430
+ minAvailableCapacity: number;
431
+ selectedTime: string;
432
+ quantity: number;
433
+ id: number;
434
+ title: string;
435
+ ticket_type: "time_slot" | "annual" | "normal";
436
+ bookable: boolean;
437
+ museum_ids: number[];
438
+ exhibition_ids: number[];
439
+ price_cents: number;
440
+ discount: number;
441
+ vat_pct: number;
442
+ tax_included: boolean;
443
+ entry_duration: number | null;
444
+ min_persons: number;
445
+ max_persons: number;
446
+ quota_ids: number[];
447
+ first_entry: number;
448
+ last_entry: number;
449
+ personalizeable: boolean;
450
+ attendees: boolean | string;
451
+ identification: boolean | string;
452
+ free_timing: boolean;
453
+ is_collective: boolean;
454
+ is_upgrade: boolean;
455
+ is_mantle: boolean;
456
+ description: string | null;
457
+ sub_ticket_ids: number[];
458
+ sub_tickets: {
459
+ [key: string]: {
460
+ title?: string;
461
+ min_persons?: number;
462
+ max_persons?: number;
463
+ description?: string | null;
464
+ };
465
+ } | null;
466
+ is_sub_ticket: boolean;
467
+ created_at: string;
468
+ updated_at: string;
469
+ shipped_with_merchandise_id: number | null;
470
+ restricted_shop_account: boolean;
471
+ cash_point_order: number;
472
+ capacities: {
473
+ [key: string]: number;
474
+ };
475
+ total_capacities: {
476
+ [key: string]: number;
477
+ };
478
+ max_total_capacity: number;
479
+ dynamic_prices: {
480
+ [key: string]: number;
481
+ } | null;
482
+ uid: number;
483
+ } | {
484
+ type: "annual" | "timeslot" | "day";
485
+ shop_order: number;
486
+ max_capacity: number;
487
+ min_quantity: number;
488
+ max_quantity: number;
489
+ minAvailableCapacity: number;
490
+ selectedTime: string;
491
+ quantity: number;
492
+ id: number;
493
+ title: string;
494
+ ticket_type: "time_slot" | "annual" | "normal";
495
+ bookable: boolean;
496
+ museum_ids: number[];
497
+ exhibition_ids: number[];
498
+ price_cents: number;
499
+ discount: number;
500
+ vat_pct: number;
501
+ tax_included: boolean;
502
+ entry_duration: number | null;
503
+ min_persons: number;
504
+ max_persons: number;
505
+ quota_ids: number[];
506
+ first_entry: number;
507
+ last_entry: number;
508
+ personalizeable: boolean;
509
+ attendees: boolean | string;
510
+ identification: boolean | string;
511
+ free_timing: boolean;
512
+ is_collective: boolean;
513
+ is_upgrade: boolean;
514
+ is_mantle: boolean;
515
+ description: string | null;
516
+ sub_ticket_ids: number[];
517
+ sub_tickets: {
518
+ [key: string]: {
519
+ title?: string;
520
+ min_persons?: number;
521
+ max_persons?: number;
522
+ description?: string | null;
523
+ };
524
+ } | null;
525
+ is_sub_ticket: boolean;
526
+ created_at: string;
527
+ updated_at: string;
528
+ shipped_with_merchandise_id: number | null;
529
+ restricted_shop_account: boolean;
530
+ cash_point_order: number;
531
+ dynamic_prices: {
532
+ [key: string]: number;
533
+ } | null;
534
+ uid: number;
535
+ };
536
+ attributes: {
537
+ id: number;
538
+ time: string;
539
+ quantity: number;
540
+ shipped_with_merchandise_id?: number | null;
541
+ } | {
542
+ id: number;
543
+ time: string;
544
+ quantity: number;
545
+ shipped_with_merchandise_id?: number | null;
546
+ };
547
+ uuid: string;
548
+ price_cents: number;
549
+ price_formatted: string;
550
+ final_price_cents: number;
551
+ final_price_formatted: string;
552
+ total_price_cents: number;
553
+ total_price_formatted: string;
554
+ quantity: number;
555
+ time: string;
556
+ }[];
557
+ readonly totalPriceCents: number;
558
+ readonly totalFormatted: string;
559
+ clearItems(): void;
560
+ deleteItem(item: CartItem): void;
561
+ addItem(item: CartItem): void;
562
+ addItems(items: CartItem[]): void;
563
+ };
564
+ export declare function formatCurrency(priceCents: number): string;