@munchi_oy/cart-engine 0.1.2 → 0.1.5

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.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { CurrencyCode, PosBusinessDto, OrderTypePOS, ProviderEnum, CheckoutModelEnum, PosOrderDtoTableService, PosDiscountDto, PosOrderItemDto, LocatorType, OrderFormat, OrderRefundStatus, OrderStatusEnum, PosOrderDto, PosCustomerDto, PaymentRefundDto, InvoiceCompanyResponseDto, PosOrderPriceDto, KitchenStatus, PosPaymentStatus, TransactionDto, DiscountType, MoneyDto, ItemPriceDto, PosOrderDtoTaxSummary } from '@munchi_oy/core';
1
+ import { CurrencyCode, PosBusinessDto, OrderTypePOS, ProviderEnum, CheckoutModelEnum, PosOrderTableServiceDto, PosOrderEqualSplitStateDto, PosDiscountDto, PosOrderItemDto, LocatorType, OrderFormat, OrderRefundStatus, OrderStatusEnum, PosOrderDto, PosCustomerDto, PaymentRefundDto, InvoiceCompanyResponseDto, PosOrderPriceDto, KitchenStatus, PosPaymentStatus, PosOrderItemSplitSeatDto, PosOrderItemSplitSeatAssignmentDto, PosOrderEqualSplitPartDto, TransactionDto, DiscountType, MoneyDto, ItemPriceDto, PosOrderDtoTaxSummary } from '@munchi_oy/core';
2
2
 
3
3
  declare enum ApplyTo {
4
4
  Order = "order",
@@ -16,10 +16,12 @@ interface CartCreateOptions {
16
16
  currency: CurrencyCode;
17
17
  business: PosBusinessDto;
18
18
  orderNumber: string;
19
+ aggregateMatchingItemsOnAdd?: boolean;
19
20
  orderType?: OrderTypePOS;
20
21
  provider?: ProviderEnum;
21
22
  checkoutModel?: CheckoutModelEnum;
22
- tableService?: PosOrderDtoTableService | null;
23
+ tableService?: PosOrderTableServiceDto | null;
24
+ equalSplitState?: PosOrderEqualSplitStateDto | null;
23
25
  createdAt?: Date;
24
26
  staffId?: string | null;
25
27
  shiftId?: string | null;
@@ -53,11 +55,13 @@ declare class Cart {
53
55
  private _customer;
54
56
  private _refunds;
55
57
  private _tableService;
58
+ private _equalSplitState;
56
59
  private _taxSummary;
57
60
  private _newlyCancelledItemIds;
58
61
  private _invoiceCompany;
59
62
  private _staffId;
60
63
  private _shiftId;
64
+ private _aggregateMatchingItemsOnAdd;
61
65
  private version;
62
66
  private constructor();
63
67
  static create(options: CartCreateOptions): Cart;
@@ -72,10 +76,14 @@ declare class Cart {
72
76
  get loyaltyProgramId(): string | null;
73
77
  get loyaltyTransactionIds(): readonly string[];
74
78
  get invoiceCompany(): InvoiceCompanyResponseDto | null;
79
+ get aggregateMatchingItemsOnAdd(): boolean;
75
80
  get guestCount(): number | null;
76
- get tableService(): PosOrderDtoTableService | null;
81
+ get tableService(): PosOrderTableServiceDto | null;
82
+ get equalSplitState(): PosOrderEqualSplitStateDto | null;
83
+ get equalSplitPartCount(): number | null;
77
84
  get price(): PosOrderPriceDto;
78
85
  setInvoiceCompany(company: InvoiceCompanyResponseDto | null): void;
86
+ setAggregateMatchingItemsOnAdd(enabled: boolean): void;
79
87
  addItem(itemData: CartItemAddData, requiresPrep?: boolean): void;
80
88
  updateItem(lineItemId: string, updatedItem: PosOrderItemDto): void;
81
89
  removeItem(lineItemId: string): void;
@@ -84,6 +92,9 @@ declare class Cart {
84
92
  clearCancellationTracking(): void;
85
93
  applyDiscountToCart(discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
86
94
  applyDiscountToItem(lineItemId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
95
+ applyDiscountToItemSplitSeat(seatId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
96
+ applyDiscountToItemSplitAssignment(assignmentId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
97
+ applyDiscountToEqualSplitPart(partId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
87
98
  removeItemDiscount(lineItemId: string): void;
88
99
  removeDiscount(discountId: string): void;
89
100
  setCustomer(customer: PosCustomerDto | null): void;
@@ -98,6 +109,47 @@ declare class Cart {
98
109
  setCheckoutType(checkoutModel: CheckoutModelEnum): void;
99
110
  setGuestCount(guestCount: number | null): void;
100
111
  setSeatNumber(guestCount: number | null): void;
112
+ getTableService(): PosOrderTableServiceDto | null;
113
+ setTableService(tableService: PosOrderTableServiceDto | null): this;
114
+ clearTableService(): this;
115
+ getTableName(): string | null;
116
+ setTableName(name: string | null): this;
117
+ getSeatsCount(): number | null;
118
+ setSeatsCount(seats: number): this;
119
+ getItemSplitSeats(): PosOrderItemSplitSeatDto[];
120
+ setItemSplitSeats(seats: PosOrderItemSplitSeatDto[]): this;
121
+ clearItemSplitSeats(): this;
122
+ addItemSplitSeat(seat: PosOrderItemSplitSeatDto): this;
123
+ updateItemSplitSeat(seatId: string, updater: (seat: PosOrderItemSplitSeatDto) => PosOrderItemSplitSeatDto): this;
124
+ removeItemSplitSeat(seatId: string): this;
125
+ getItemSplitSeatById(seatId: string): PosOrderItemSplitSeatDto | null;
126
+ setItemSplitSeatAssignments(seatId: string, assignments: PosOrderItemSplitSeatAssignmentDto[]): this;
127
+ addItemSplitSeatAssignment(seatId: string, assignment: PosOrderItemSplitSeatAssignmentDto): this;
128
+ removeItemSplitSeatAssignmentsByLineItem(seatId: string, lineItemId: string): this;
129
+ clearItemSplitSeatAssignments(seatId: string): this;
130
+ setItemSplitSeatLoyalty(seatId: string, loyaltyId: string | null, loyaltyUserName: string | null): this;
131
+ clearItemSplitSeatLoyalty(seatId: string): this;
132
+ setItemSplitSeatAppliedDiscountIds(seatId: string, appliedDiscountIds: string[]): this;
133
+ addItemSplitSeatAppliedDiscountId(seatId: string, discountId: string): this;
134
+ removeItemSplitSeatAppliedDiscountId(seatId: string, discountId: string): this;
135
+ clearItemSplitSeatAppliedDiscountIds(seatId: string): this;
136
+ getEqualSplitState(): PosOrderEqualSplitStateDto | null;
137
+ setEqualSplitState(equalSplitState: PosOrderEqualSplitStateDto | null): this;
138
+ clearEqualSplitState(): this;
139
+ getEqualSplitParts(): PosOrderEqualSplitPartDto[];
140
+ setEqualSplitParts(parts: PosOrderEqualSplitPartDto[]): this;
141
+ clearEqualSplitParts(): this;
142
+ addEqualSplitPart(part: PosOrderEqualSplitPartDto): this;
143
+ updateEqualSplitPart(partId: string, updater: (part: PosOrderEqualSplitPartDto) => PosOrderEqualSplitPartDto): this;
144
+ removeEqualSplitPart(partId: string): this;
145
+ getEqualSplitPartById(partId: string): PosOrderEqualSplitPartDto | null;
146
+ getEqualSplitPartCount(): number | null;
147
+ setEqualSplitPartCount(partCount: number | null): this;
148
+ clearEqualSplitPartCount(): this;
149
+ setEqualSplitPartAppliedDiscountIds(partId: string, appliedDiscountIds: string[]): this;
150
+ addEqualSplitPartAppliedDiscountId(partId: string, discountId: string): this;
151
+ removeEqualSplitPartAppliedDiscountId(partId: string, discountId: string): this;
152
+ clearEqualSplitPartAppliedDiscountIds(partId: string): this;
101
153
  updateOrderStatus(newStatus: OrderStatusEnum): void;
102
154
  updateOrderFormat(newFormat: OrderFormat): void;
103
155
  updateLoyaltyProgramId(id: string): void;
@@ -106,6 +158,7 @@ declare class Cart {
106
158
  toJSON(paymentEvents?: TransactionDto[]): PosOrderDto;
107
159
  clone(): Cart;
108
160
  private calculateOrderTaxSummary;
161
+ private createDiscountRecord;
109
162
  private touch;
110
163
  }
111
164
 
@@ -130,10 +183,34 @@ interface CartPriceSnapshot {
130
183
  totalBeforeDiscountsAmount: number;
131
184
  subtotalItemDiscountsAmount: number;
132
185
  subtotalBasketDiscountsAmount: number;
186
+ subtotalTargetedDiscountsAmount: number;
133
187
  totalDiscountsAmount: number;
134
188
  totalAmount: number;
189
+ itemSplitSeatPricing: SplitPricingResult | null;
190
+ equalSplitPartPricing: SplitPricingResult | null;
135
191
  price: PosOrderPriceDto;
136
192
  }
193
+ interface SplitTargetAmount {
194
+ id: string;
195
+ grossAmount: number;
196
+ discountAmount: number;
197
+ netAmount: number;
198
+ }
199
+ interface SplitPricingResult {
200
+ targets: SplitTargetAmount[];
201
+ totalGrossAmount: number;
202
+ totalDiscountAmount: number;
203
+ totalNetAmount: number;
204
+ }
205
+ declare function calculateItemSplitSeatPricing(details: {
206
+ tableService: PosOrderTableServiceDto | null | undefined;
207
+ discounts: readonly InternalPosDiscount[];
208
+ }): SplitPricingResult;
209
+ declare function calculateEqualSplitPartPricing(details: {
210
+ totalAmount: number;
211
+ equalSplitState: PosOrderEqualSplitStateDto | null | undefined;
212
+ discounts: readonly InternalPosDiscount[];
213
+ }): SplitPricingResult;
137
214
  declare function calculateItemPrice(details: {
138
215
  basePriceInMinorUnit: number;
139
216
  quantity: number;
@@ -149,6 +226,9 @@ declare function calculateCartPriceSnapshot(details: {
149
226
  items: readonly PosOrderItemDto[];
150
227
  discounts: readonly InternalPosDiscount[];
151
228
  currency: CurrencyCode;
229
+ checkoutModel?: CheckoutModelEnum;
230
+ tableService?: PosOrderTableServiceDto | null;
231
+ equalSplitState?: PosOrderEqualSplitStateDto | null;
152
232
  }): CartPriceSnapshot;
153
233
 
154
234
  interface TaxInclusiveSplitResult {
@@ -164,6 +244,6 @@ declare function calculateOrderTaxSummary(details: {
164
244
  currency: CurrencyCode;
165
245
  }): PosOrderDtoTaxSummary;
166
246
 
167
- declare const VERSION = "0.1.2";
247
+ declare const VERSION = "0.1.5";
168
248
 
169
- export { ApplyTo, Cart, type CartCreateOptions, type CartItemAddData, type CartOptionPayload, type CartPriceSnapshot, type DiscountStrategyFn, type InternalPosDiscount, type SequentialDiscountCalculation, type TaxInclusiveSplitResult, type UpdatableCartDetails, VERSION, allocateProportionalMinorUnits, calculateCartPriceSnapshot, calculateDiscountAmount, calculateItemPrice, calculateOrderTaxSummary, calculateSequentialDiscountTotal, splitTaxInclusiveAmount };
249
+ export { ApplyTo, Cart, type CartCreateOptions, type CartItemAddData, type CartOptionPayload, type CartPriceSnapshot, type DiscountStrategyFn, type InternalPosDiscount, type SequentialDiscountCalculation, type SplitPricingResult, type SplitTargetAmount, type TaxInclusiveSplitResult, type UpdatableCartDetails, VERSION, allocateProportionalMinorUnits, calculateCartPriceSnapshot, calculateDiscountAmount, calculateEqualSplitPartPricing, calculateItemPrice, calculateItemSplitSeatPricing, calculateOrderTaxSummary, calculateSequentialDiscountTotal, splitTaxInclusiveAmount };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CurrencyCode, PosBusinessDto, OrderTypePOS, ProviderEnum, CheckoutModelEnum, PosOrderDtoTableService, PosDiscountDto, PosOrderItemDto, LocatorType, OrderFormat, OrderRefundStatus, OrderStatusEnum, PosOrderDto, PosCustomerDto, PaymentRefundDto, InvoiceCompanyResponseDto, PosOrderPriceDto, KitchenStatus, PosPaymentStatus, TransactionDto, DiscountType, MoneyDto, ItemPriceDto, PosOrderDtoTaxSummary } from '@munchi_oy/core';
1
+ import { CurrencyCode, PosBusinessDto, OrderTypePOS, ProviderEnum, CheckoutModelEnum, PosOrderTableServiceDto, PosOrderEqualSplitStateDto, PosDiscountDto, PosOrderItemDto, LocatorType, OrderFormat, OrderRefundStatus, OrderStatusEnum, PosOrderDto, PosCustomerDto, PaymentRefundDto, InvoiceCompanyResponseDto, PosOrderPriceDto, KitchenStatus, PosPaymentStatus, PosOrderItemSplitSeatDto, PosOrderItemSplitSeatAssignmentDto, PosOrderEqualSplitPartDto, TransactionDto, DiscountType, MoneyDto, ItemPriceDto, PosOrderDtoTaxSummary } from '@munchi_oy/core';
2
2
 
3
3
  declare enum ApplyTo {
4
4
  Order = "order",
@@ -16,10 +16,12 @@ interface CartCreateOptions {
16
16
  currency: CurrencyCode;
17
17
  business: PosBusinessDto;
18
18
  orderNumber: string;
19
+ aggregateMatchingItemsOnAdd?: boolean;
19
20
  orderType?: OrderTypePOS;
20
21
  provider?: ProviderEnum;
21
22
  checkoutModel?: CheckoutModelEnum;
22
- tableService?: PosOrderDtoTableService | null;
23
+ tableService?: PosOrderTableServiceDto | null;
24
+ equalSplitState?: PosOrderEqualSplitStateDto | null;
23
25
  createdAt?: Date;
24
26
  staffId?: string | null;
25
27
  shiftId?: string | null;
@@ -53,11 +55,13 @@ declare class Cart {
53
55
  private _customer;
54
56
  private _refunds;
55
57
  private _tableService;
58
+ private _equalSplitState;
56
59
  private _taxSummary;
57
60
  private _newlyCancelledItemIds;
58
61
  private _invoiceCompany;
59
62
  private _staffId;
60
63
  private _shiftId;
64
+ private _aggregateMatchingItemsOnAdd;
61
65
  private version;
62
66
  private constructor();
63
67
  static create(options: CartCreateOptions): Cart;
@@ -72,10 +76,14 @@ declare class Cart {
72
76
  get loyaltyProgramId(): string | null;
73
77
  get loyaltyTransactionIds(): readonly string[];
74
78
  get invoiceCompany(): InvoiceCompanyResponseDto | null;
79
+ get aggregateMatchingItemsOnAdd(): boolean;
75
80
  get guestCount(): number | null;
76
- get tableService(): PosOrderDtoTableService | null;
81
+ get tableService(): PosOrderTableServiceDto | null;
82
+ get equalSplitState(): PosOrderEqualSplitStateDto | null;
83
+ get equalSplitPartCount(): number | null;
77
84
  get price(): PosOrderPriceDto;
78
85
  setInvoiceCompany(company: InvoiceCompanyResponseDto | null): void;
86
+ setAggregateMatchingItemsOnAdd(enabled: boolean): void;
79
87
  addItem(itemData: CartItemAddData, requiresPrep?: boolean): void;
80
88
  updateItem(lineItemId: string, updatedItem: PosOrderItemDto): void;
81
89
  removeItem(lineItemId: string): void;
@@ -84,6 +92,9 @@ declare class Cart {
84
92
  clearCancellationTracking(): void;
85
93
  applyDiscountToCart(discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
86
94
  applyDiscountToItem(lineItemId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
95
+ applyDiscountToItemSplitSeat(seatId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
96
+ applyDiscountToItemSplitAssignment(assignmentId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
97
+ applyDiscountToEqualSplitPart(partId: string, discountData: Omit<PosDiscountDto, "scope" | "lineItemId" | "createdAt">): void;
87
98
  removeItemDiscount(lineItemId: string): void;
88
99
  removeDiscount(discountId: string): void;
89
100
  setCustomer(customer: PosCustomerDto | null): void;
@@ -98,6 +109,47 @@ declare class Cart {
98
109
  setCheckoutType(checkoutModel: CheckoutModelEnum): void;
99
110
  setGuestCount(guestCount: number | null): void;
100
111
  setSeatNumber(guestCount: number | null): void;
112
+ getTableService(): PosOrderTableServiceDto | null;
113
+ setTableService(tableService: PosOrderTableServiceDto | null): this;
114
+ clearTableService(): this;
115
+ getTableName(): string | null;
116
+ setTableName(name: string | null): this;
117
+ getSeatsCount(): number | null;
118
+ setSeatsCount(seats: number): this;
119
+ getItemSplitSeats(): PosOrderItemSplitSeatDto[];
120
+ setItemSplitSeats(seats: PosOrderItemSplitSeatDto[]): this;
121
+ clearItemSplitSeats(): this;
122
+ addItemSplitSeat(seat: PosOrderItemSplitSeatDto): this;
123
+ updateItemSplitSeat(seatId: string, updater: (seat: PosOrderItemSplitSeatDto) => PosOrderItemSplitSeatDto): this;
124
+ removeItemSplitSeat(seatId: string): this;
125
+ getItemSplitSeatById(seatId: string): PosOrderItemSplitSeatDto | null;
126
+ setItemSplitSeatAssignments(seatId: string, assignments: PosOrderItemSplitSeatAssignmentDto[]): this;
127
+ addItemSplitSeatAssignment(seatId: string, assignment: PosOrderItemSplitSeatAssignmentDto): this;
128
+ removeItemSplitSeatAssignmentsByLineItem(seatId: string, lineItemId: string): this;
129
+ clearItemSplitSeatAssignments(seatId: string): this;
130
+ setItemSplitSeatLoyalty(seatId: string, loyaltyId: string | null, loyaltyUserName: string | null): this;
131
+ clearItemSplitSeatLoyalty(seatId: string): this;
132
+ setItemSplitSeatAppliedDiscountIds(seatId: string, appliedDiscountIds: string[]): this;
133
+ addItemSplitSeatAppliedDiscountId(seatId: string, discountId: string): this;
134
+ removeItemSplitSeatAppliedDiscountId(seatId: string, discountId: string): this;
135
+ clearItemSplitSeatAppliedDiscountIds(seatId: string): this;
136
+ getEqualSplitState(): PosOrderEqualSplitStateDto | null;
137
+ setEqualSplitState(equalSplitState: PosOrderEqualSplitStateDto | null): this;
138
+ clearEqualSplitState(): this;
139
+ getEqualSplitParts(): PosOrderEqualSplitPartDto[];
140
+ setEqualSplitParts(parts: PosOrderEqualSplitPartDto[]): this;
141
+ clearEqualSplitParts(): this;
142
+ addEqualSplitPart(part: PosOrderEqualSplitPartDto): this;
143
+ updateEqualSplitPart(partId: string, updater: (part: PosOrderEqualSplitPartDto) => PosOrderEqualSplitPartDto): this;
144
+ removeEqualSplitPart(partId: string): this;
145
+ getEqualSplitPartById(partId: string): PosOrderEqualSplitPartDto | null;
146
+ getEqualSplitPartCount(): number | null;
147
+ setEqualSplitPartCount(partCount: number | null): this;
148
+ clearEqualSplitPartCount(): this;
149
+ setEqualSplitPartAppliedDiscountIds(partId: string, appliedDiscountIds: string[]): this;
150
+ addEqualSplitPartAppliedDiscountId(partId: string, discountId: string): this;
151
+ removeEqualSplitPartAppliedDiscountId(partId: string, discountId: string): this;
152
+ clearEqualSplitPartAppliedDiscountIds(partId: string): this;
101
153
  updateOrderStatus(newStatus: OrderStatusEnum): void;
102
154
  updateOrderFormat(newFormat: OrderFormat): void;
103
155
  updateLoyaltyProgramId(id: string): void;
@@ -106,6 +158,7 @@ declare class Cart {
106
158
  toJSON(paymentEvents?: TransactionDto[]): PosOrderDto;
107
159
  clone(): Cart;
108
160
  private calculateOrderTaxSummary;
161
+ private createDiscountRecord;
109
162
  private touch;
110
163
  }
111
164
 
@@ -130,10 +183,34 @@ interface CartPriceSnapshot {
130
183
  totalBeforeDiscountsAmount: number;
131
184
  subtotalItemDiscountsAmount: number;
132
185
  subtotalBasketDiscountsAmount: number;
186
+ subtotalTargetedDiscountsAmount: number;
133
187
  totalDiscountsAmount: number;
134
188
  totalAmount: number;
189
+ itemSplitSeatPricing: SplitPricingResult | null;
190
+ equalSplitPartPricing: SplitPricingResult | null;
135
191
  price: PosOrderPriceDto;
136
192
  }
193
+ interface SplitTargetAmount {
194
+ id: string;
195
+ grossAmount: number;
196
+ discountAmount: number;
197
+ netAmount: number;
198
+ }
199
+ interface SplitPricingResult {
200
+ targets: SplitTargetAmount[];
201
+ totalGrossAmount: number;
202
+ totalDiscountAmount: number;
203
+ totalNetAmount: number;
204
+ }
205
+ declare function calculateItemSplitSeatPricing(details: {
206
+ tableService: PosOrderTableServiceDto | null | undefined;
207
+ discounts: readonly InternalPosDiscount[];
208
+ }): SplitPricingResult;
209
+ declare function calculateEqualSplitPartPricing(details: {
210
+ totalAmount: number;
211
+ equalSplitState: PosOrderEqualSplitStateDto | null | undefined;
212
+ discounts: readonly InternalPosDiscount[];
213
+ }): SplitPricingResult;
137
214
  declare function calculateItemPrice(details: {
138
215
  basePriceInMinorUnit: number;
139
216
  quantity: number;
@@ -149,6 +226,9 @@ declare function calculateCartPriceSnapshot(details: {
149
226
  items: readonly PosOrderItemDto[];
150
227
  discounts: readonly InternalPosDiscount[];
151
228
  currency: CurrencyCode;
229
+ checkoutModel?: CheckoutModelEnum;
230
+ tableService?: PosOrderTableServiceDto | null;
231
+ equalSplitState?: PosOrderEqualSplitStateDto | null;
152
232
  }): CartPriceSnapshot;
153
233
 
154
234
  interface TaxInclusiveSplitResult {
@@ -164,6 +244,6 @@ declare function calculateOrderTaxSummary(details: {
164
244
  currency: CurrencyCode;
165
245
  }): PosOrderDtoTaxSummary;
166
246
 
167
- declare const VERSION = "0.1.2";
247
+ declare const VERSION = "0.1.5";
168
248
 
169
- export { ApplyTo, Cart, type CartCreateOptions, type CartItemAddData, type CartOptionPayload, type CartPriceSnapshot, type DiscountStrategyFn, type InternalPosDiscount, type SequentialDiscountCalculation, type TaxInclusiveSplitResult, type UpdatableCartDetails, VERSION, allocateProportionalMinorUnits, calculateCartPriceSnapshot, calculateDiscountAmount, calculateItemPrice, calculateOrderTaxSummary, calculateSequentialDiscountTotal, splitTaxInclusiveAmount };
249
+ export { ApplyTo, Cart, type CartCreateOptions, type CartItemAddData, type CartOptionPayload, type CartPriceSnapshot, type DiscountStrategyFn, type InternalPosDiscount, type SequentialDiscountCalculation, type SplitPricingResult, type SplitTargetAmount, type TaxInclusiveSplitResult, type UpdatableCartDetails, VERSION, allocateProportionalMinorUnits, calculateCartPriceSnapshot, calculateDiscountAmount, calculateEqualSplitPartPricing, calculateItemPrice, calculateItemSplitSeatPricing, calculateOrderTaxSummary, calculateSequentialDiscountTotal, splitTaxInclusiveAmount };