@fas-core/shared-types 1.0.89 → 1.0.91

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.mts CHANGED
@@ -218,6 +218,7 @@ interface IBrand extends BaseEntity {
218
218
  stores: IStore[];
219
219
  sortOrder: number;
220
220
  status: boolean;
221
+ isOnline: boolean;
221
222
  metaData: Metadata;
222
223
  seoMetaData: ISEOMetaData;
223
224
  }
@@ -233,6 +234,7 @@ interface ICategory extends BaseEntity {
233
234
  banners: IBannerSlide[];
234
235
  sortOrder: number;
235
236
  status: boolean;
237
+ isOnline: boolean;
236
238
  metaData: Metadata;
237
239
  seoMetaData: ISEOMetaData;
238
240
  subCategories?: ICategory[];
@@ -276,6 +278,7 @@ interface IProductVariantFields {
276
278
  metaData: Metadata;
277
279
  seoMetaData: ISEOMetaData;
278
280
  status: boolean;
281
+ isOnline: boolean;
279
282
  }
280
283
 
281
284
  type VariantOptionMode = "OPTION_BACKED" | "MANUAL";
@@ -412,6 +415,12 @@ interface IOrderItem extends BaseEntity {
412
415
  variant?: IVariant;
413
416
  pricing: ILinePricing;
414
417
  metaData: Metadata;
418
+ bundleId?: string | null;
419
+ bundleTitle?: string | null;
420
+ bundleConfiguratorKey?: string | null;
421
+ bundleQuantity?: number;
422
+ bundleUnitQuantity?: number | null;
423
+ note?: string;
415
424
  }
416
425
 
417
426
  declare const PaymentStatusEnum: {
@@ -713,6 +722,168 @@ interface IEmailTemplate extends BaseEntity {
713
722
  status: boolean;
714
723
  }
715
724
 
725
+ declare const ConfiguratorSelectModeEnum: {
726
+ readonly SINGLE: "SINGLE";
727
+ readonly MULTI: "MULTI";
728
+ };
729
+ type ConfiguratorSelectModeEnum = (typeof ConfiguratorSelectModeEnum)[keyof typeof ConfiguratorSelectModeEnum];
730
+ declare const CONFIGURATOR_SELECT_MODE_VALUES: ("SINGLE" | "MULTI")[];
731
+ declare const ConfiguratorSourceEnum: {
732
+ readonly PICKED: "PICKED";
733
+ readonly QUERY: "QUERY";
734
+ };
735
+ type ConfiguratorSourceEnum = (typeof ConfiguratorSourceEnum)[keyof typeof ConfiguratorSourceEnum];
736
+ declare const CONFIGURATOR_SOURCE_VALUES: ("PICKED" | "QUERY")[];
737
+ declare const ConfiguratorConditionTypeEnum: {
738
+ readonly SELECTED: "SELECTED";
739
+ readonly ALL: "ALL";
740
+ readonly ANY: "ANY";
741
+ readonly NOT: "NOT";
742
+ };
743
+ type ConfiguratorConditionTypeEnum = (typeof ConfiguratorConditionTypeEnum)[keyof typeof ConfiguratorConditionTypeEnum];
744
+ declare const CONFIGURATOR_CONDITION_TYPE_VALUES: ("SELECTED" | "ALL" | "ANY" | "NOT")[];
745
+ declare const ConfiguratorEffectTypeEnum: {
746
+ readonly SHOW: "SHOW";
747
+ readonly HIDE: "HIDE";
748
+ readonly REQUIRE: "REQUIRE";
749
+ readonly OPTIONAL: "OPTIONAL";
750
+ readonly SELECT: "SELECT";
751
+ readonly DESELECT: "DESELECT";
752
+ readonly PRICE_ADJUST: "PRICE_ADJUST";
753
+ };
754
+ type ConfiguratorEffectTypeEnum = (typeof ConfiguratorEffectTypeEnum)[keyof typeof ConfiguratorEffectTypeEnum];
755
+ declare const CONFIGURATOR_EFFECT_TYPE_VALUES: ("SHOW" | "HIDE" | "REQUIRE" | "OPTIONAL" | "SELECT" | "DESELECT" | "PRICE_ADJUST")[];
756
+ declare const ConfiguratorErrorCodeEnum: {
757
+ readonly REQUIRED_SECTION_EMPTY: "REQUIRED_SECTION_EMPTY";
758
+ readonly OPTION_NOT_AVAILABLE: "OPTION_NOT_AVAILABLE";
759
+ readonly SECTION_NOT_AVAILABLE: "SECTION_NOT_AVAILABLE";
760
+ readonly UNKNOWN_SECTION: "UNKNOWN_SECTION";
761
+ readonly SINGLE_SELECT_OVERFILLED: "SINGLE_SELECT_OVERFILLED";
762
+ readonly RULES_UNSTABLE: "RULES_UNSTABLE";
763
+ };
764
+ type ConfiguratorErrorCodeEnum = (typeof ConfiguratorErrorCodeEnum)[keyof typeof ConfiguratorErrorCodeEnum];
765
+ declare const CONFIGURATOR_ERROR_CODE_VALUES: ("REQUIRED_SECTION_EMPTY" | "OPTION_NOT_AVAILABLE" | "SECTION_NOT_AVAILABLE" | "UNKNOWN_SECTION" | "SINGLE_SELECT_OVERFILLED" | "RULES_UNSTABLE")[];
766
+ interface IConfiguratorQuery {
767
+ search?: string;
768
+ categories?: string[];
769
+ brands?: string[];
770
+ types?: string[];
771
+ minPrice?: number;
772
+ maxPrice?: number;
773
+ inStock?: boolean;
774
+ limit?: number;
775
+ }
776
+ interface IConfiguratorFacetValue {
777
+ key: string;
778
+ label: string;
779
+ tags?: string[];
780
+ query?: IConfiguratorQuery;
781
+ isDefault?: boolean;
782
+ }
783
+ interface IConfiguratorFacet {
784
+ key: string;
785
+ label: string;
786
+ values: IConfiguratorFacetValue[];
787
+ }
788
+ interface IConfiguratorOption {
789
+ key: string;
790
+ sku: string;
791
+ tags?: string[];
792
+ sortOrder?: number;
793
+ }
794
+ interface IConfiguratorSection {
795
+ key: string;
796
+ title: string;
797
+ description?: string;
798
+ selectMode: ConfiguratorSelectModeEnum;
799
+ required: boolean;
800
+ source: ConfiguratorSourceEnum;
801
+ options?: IConfiguratorOption[];
802
+ query?: IConfiguratorQuery;
803
+ facets?: IConfiguratorFacet[];
804
+ contentHtml?: string;
805
+ sortOrder?: number;
806
+ }
807
+ interface IConfiguratorStep {
808
+ key: string;
809
+ title: string;
810
+ description?: string;
811
+ sections: IConfiguratorSection[];
812
+ sortOrder?: number;
813
+ }
814
+ interface IConfiguratorTarget {
815
+ sectionKey: string;
816
+ optionKey?: string;
817
+ tag?: string;
818
+ }
819
+ type IConfiguratorCondition = {
820
+ type: typeof ConfiguratorConditionTypeEnum.SELECTED;
821
+ sectionKey: string;
822
+ optionKeys?: string[];
823
+ } | {
824
+ type: typeof ConfiguratorConditionTypeEnum.ALL | typeof ConfiguratorConditionTypeEnum.ANY;
825
+ conditions: IConfiguratorCondition[];
826
+ } | {
827
+ type: typeof ConfiguratorConditionTypeEnum.NOT;
828
+ condition: IConfiguratorCondition;
829
+ };
830
+ interface IConfiguratorEffect {
831
+ type: ConfiguratorEffectTypeEnum;
832
+ target: IConfiguratorTarget;
833
+ mode?: PricingType;
834
+ amount?: number;
835
+ }
836
+ interface IConfiguratorPriceAdjustment {
837
+ sectionKey: string;
838
+ optionKey?: string;
839
+ mode: PricingType;
840
+ amount: number;
841
+ }
842
+ interface IConfiguratorRule {
843
+ key: string;
844
+ description?: string;
845
+ when: IConfiguratorCondition;
846
+ then: IConfiguratorEffect[];
847
+ }
848
+ interface IConfigurator extends BaseEntity {
849
+ name: string;
850
+ key: string;
851
+ description: string;
852
+ images?: string[];
853
+ stores: (IStore | string)[];
854
+ steps: IConfiguratorStep[];
855
+ rules: IConfiguratorRule[];
856
+ sortOrder: number;
857
+ isVisible: boolean;
858
+ status: boolean;
859
+ }
860
+ type ConfiguratorSelections = Record<string, string[]>;
861
+
862
+ interface ConfiguratorEvalContext {
863
+ optionKeysBySection?: Record<string, string[]>;
864
+ }
865
+ interface ConfiguratorEvalError {
866
+ code: ConfiguratorErrorCodeEnum;
867
+ sectionKey: string;
868
+ optionKey?: string;
869
+ }
870
+ interface ConfiguratorEvalResult {
871
+ selections: ConfiguratorSelections;
872
+ hiddenSections: string[];
873
+ hiddenOptions: string[];
874
+ requiredSections: string[];
875
+ errors: ConfiguratorEvalError[];
876
+ priceAdjustments: IConfiguratorPriceAdjustment[];
877
+ stable: boolean;
878
+ hiddenBy: Record<string, string>;
879
+ selectedBy: Record<string, string>;
880
+ }
881
+ declare const conditionHolds: (condition: IConfiguratorCondition | undefined, selections: ConfiguratorSelections) => boolean;
882
+ declare const evaluateConfigurator: (config: IConfigurator, selections: ConfiguratorSelections, context?: ConfiguratorEvalContext) => ConfiguratorEvalResult;
883
+ declare const applyPriceAdjustments: (baseUnitPrice: number, adjustments: IConfiguratorPriceAdjustment[]) => number;
884
+ declare const adjustmentsFor: (adjustments: IConfiguratorPriceAdjustment[], sectionKey: string, optionKey: string) => IConfiguratorPriceAdjustment[];
885
+ declare const isConfigurationValid: (result: ConfiguratorEvalResult) => boolean;
886
+
716
887
  type RedirectTargetType = "product" | "variant" | "category" | "url";
717
888
  interface IRedirectSuggestion {
718
889
  targetType: RedirectTargetType;
@@ -810,8 +981,76 @@ interface ICartItem extends BaseEntity {
810
981
  variant?: IVariant;
811
982
  pricing: ILinePricing;
812
983
  metaData: Metadata;
984
+ /**
985
+ * Groups the lines produced by one configurator build so the cart renders and removes
986
+ * them as a unit. Part of the line dedupe key — two bundles holding the same product
987
+ * must stay separate lines rather than merging into one.
988
+ */
989
+ bundleId?: string | null;
990
+ bundleTitle?: string | null;
991
+ /**
992
+ * Which configurator produced this bundle. Required once more than one can be published:
993
+ * the server validates a bundle against THIS configurator's rules, and the cart's reconfigure
994
+ * link reopens THIS one. Validating against "whichever is active" would check a build against
995
+ * the wrong rulebook.
996
+ */
997
+ bundleConfiguratorKey?: string | null;
998
+ /**
999
+ * How many copies of the whole configuration the customer ordered. `quantity` stays the
1000
+ * EFFECTIVE figure so pricing, stock and orders need no change; `bundleUnitQuantity` keeps
1001
+ * the per-bundle figure so the stepper can re-multiply without walking the wizard again.
1002
+ */
1003
+ bundleQuantity?: number;
1004
+ bundleUnitQuantity?: number | null;
1005
+ /** Buyer-entered line note. Survives to the order and appears on the confirmation. */
1006
+ note?: string;
813
1007
  }
814
1008
 
1009
+ declare const MAX_BUNDLE_QUANTITY = 99;
1010
+ declare const normalizeBundleQuantity: (value: unknown) => number;
1011
+ declare const bundleLineQuantity: (unitQuantity: number, bundleQuantity: number) => number;
1012
+ declare const bundleUnitFrom: (line: {
1013
+ bundleUnitQuantity?: number | null;
1014
+ quantity: number;
1015
+ bundleQuantity?: number | null;
1016
+ }) => number;
1017
+ interface BundleLine {
1018
+ bundleId?: string | null;
1019
+ bundleTitle?: string | null;
1020
+ bundleQuantity?: number;
1021
+ bundleUnitQuantity?: number | null;
1022
+ pricing?: {
1023
+ totalAmount?: number;
1024
+ };
1025
+ }
1026
+ interface BundleGroup {
1027
+ bundleId: string;
1028
+ title: string;
1029
+ quantity: number;
1030
+ lines: number;
1031
+ total: number;
1032
+ }
1033
+ declare const bundleGroupsOf: (items: BundleLine[]) => BundleGroup[];
1034
+ declare const orderByBundle: <T extends BundleLine>(items: T[]) => T[];
1035
+
1036
+ interface StockDemandLine {
1037
+ key: string;
1038
+ quantity: number;
1039
+ }
1040
+ declare const demandByKey: (lines: StockDemandLine[]) => Map<string, number>;
1041
+ type StockVerdict = {
1042
+ type: "OK";
1043
+ } | {
1044
+ type: "OUT_OF_STOCK";
1045
+ available: 0;
1046
+ requested: number;
1047
+ } | {
1048
+ type: "INSUFFICIENT_STOCK";
1049
+ available: number;
1050
+ requested: number;
1051
+ };
1052
+ declare const stockVerdict: (available: number, requested: number) => StockVerdict;
1053
+
815
1054
  declare const CartStatusEnum: {
816
1055
  readonly ACTIVE: "ACTIVE";
817
1056
  readonly CONVERTED: "CONVERTED";
@@ -936,6 +1175,111 @@ interface ICampaignRecipient extends BaseEntity {
936
1175
  lastEventAt?: Date | string;
937
1176
  }
938
1177
 
1178
+ interface IBlogAuthor extends BaseEntity {
1179
+ name: string;
1180
+ slug: string;
1181
+ bio: string;
1182
+ avatar: string;
1183
+ role: string;
1184
+ status: boolean;
1185
+ isOnline: boolean;
1186
+ metaData: Metadata;
1187
+ seoMetaData: ISEOMetaData;
1188
+ }
1189
+ interface IBlogCategory extends BaseEntity {
1190
+ name: string;
1191
+ slug: string;
1192
+ description: string;
1193
+ image: string;
1194
+ sortOrder: number;
1195
+ status: boolean;
1196
+ isOnline: boolean;
1197
+ metaData: Metadata;
1198
+ seoMetaData: ISEOMetaData;
1199
+ }
1200
+ interface IBlogCitation {
1201
+ label: string;
1202
+ url: string;
1203
+ source?: string;
1204
+ }
1205
+ interface IBlogPost extends BaseEntity {
1206
+ title: string;
1207
+ slug: string;
1208
+ excerpt: string;
1209
+ content: string;
1210
+ headerImage: string;
1211
+ headerImageAlt: string;
1212
+ thumbnail: string;
1213
+ thumbnailAlt: string;
1214
+ author: IBlogAuthor | string | null;
1215
+ category: IBlogCategory | string | null;
1216
+ tags: string[];
1217
+ citations: IBlogCitation[];
1218
+ relatedProducts: unknown[];
1219
+ readingMinutes: number;
1220
+ publishedAt: Date | string | null;
1221
+ stores: IStore[];
1222
+ status: boolean;
1223
+ isOnline: boolean;
1224
+ metaData: Metadata;
1225
+ seoMetaData: ISEOMetaData;
1226
+ }
1227
+
1228
+ interface IFaqCategory extends BaseEntity {
1229
+ name: string;
1230
+ slug: string;
1231
+ description: string;
1232
+ image: string;
1233
+ sortOrder: number;
1234
+ status: boolean;
1235
+ isOnline: boolean;
1236
+ metaData: Metadata;
1237
+ seoMetaData: ISEOMetaData;
1238
+ faqCount?: number;
1239
+ }
1240
+ interface IFaq extends BaseEntity {
1241
+ question: string;
1242
+ slug: string;
1243
+ answer: string;
1244
+ excerpt: string;
1245
+ category: IFaqCategory | string | null;
1246
+ tags: string[];
1247
+ relatedFaqs: (IFaq | string)[];
1248
+ relatedProducts: unknown[];
1249
+ helpfulYes: number;
1250
+ helpfulNo: number;
1251
+ viewCount: number;
1252
+ sortOrder: number;
1253
+ publishedAt: Date | string | null;
1254
+ stores: IStore[];
1255
+ status: boolean;
1256
+ isOnline: boolean;
1257
+ metaData: Metadata;
1258
+ seoMetaData: ISEOMetaData;
1259
+ }
1260
+
1261
+ interface IPodcastEpisode extends BaseEntity {
1262
+ title: string;
1263
+ slug: string;
1264
+ summary: string;
1265
+ showNotes: string;
1266
+ transcript: string;
1267
+ audioUrl: string;
1268
+ artwork: string;
1269
+ durationSeconds: number;
1270
+ episodeNumber: number | null;
1271
+ seasonNumber: number | null;
1272
+ publishedAt: Date | string | null;
1273
+ externalUrl: string;
1274
+ guid: string;
1275
+ relatedProducts: unknown[];
1276
+ stores: IStore[];
1277
+ status: boolean;
1278
+ isOnline: boolean;
1279
+ metaData: Metadata;
1280
+ seoMetaData: ISEOMetaData;
1281
+ }
1282
+
939
1283
  interface CheckoutAddressInput {
940
1284
  addressLine1: string;
941
1285
  addressLine2?: string;
@@ -1016,4 +1360,4 @@ interface IWishlist extends BaseEntity {
1016
1360
  items: IWishlistItem[];
1017
1361
  }
1018
1362
 
1019
- export { ACTIVE_SUBSCRIPTION_CHANNELS, ADMIN_ROLES, type AddonAmountInput, type AddonSelectionRef, type ApiResponse, type BaseEntity, CAMPAIGN_RECIPIENT_STATUS_VALUES, CAMPAIGN_STATUS_VALUES, CART_STATUS_VALUES, CampaignRecipientStatusEnum, CampaignStatusEnum, CartStatusEnum, type CheckoutAddressInput, type CheckoutPayload, type CheckoutResult, DEFAULT_SUBSCRIPTION_TOPICS, DiscountTypeEnum, EMAIL_TEMPLATE_EVENT_VALUES, EMAIL_TEMPLATE_VARIABLES_BY_EVENT, EmailTemplateEventEnum, FEE_APPLIES_TO_VALUES, FeeAppliesToEnum, type IAddonConfig, type IAddonGroup, type IAddress, type IAdmin, type IAdminCreate, type IAdminRoleType, type IAdminSafe, type IAdminUpdate, type IAppliedFee, type IBannerSlide, type IBrand, type ICampaign, type ICampaignRecipient, type ICampaignStats, type ICart, type ICartItem, type ICategory, type ICompliance, type IContact, type IContent, type ICountry, type ICoupon, type ICurrency, type ICustomer, type IDiscountType, type IDocumentation, type IEmailTemplate, type IKeyValue, type ILinePricing, type IMediaAsset, INVENTORY_POLICY_VALUES, type INotification, type IOrder, type IOrderItem, type IOrderLog, type IOrderTracking, type IOrderTransaction, type IPaymentLink, type IPrice, type IProduct, type IProductDailyStat, type IProductOptionGroup, type IProductOptionValue, type IProductRelationGroup, type IProductTechnicalSpec, type IProductTechnicalSpecTable, type IProductVariantFields, type IProductVariantOptionGroup, type IProductVariantOptionMatrix, type IProductVariantOptionValue, type IRedirect, type IRedirectSuggestion, type IRefundTransaction, type IRelationGroup, type ISEOMetaData, type ISelectableFee, type IShipFromAddress, type IShipping, type IShippingRate, type IState, type IStock, type IStore, type IStoreFee, type IStoreSettings, type ISubscriber, type ISubscriberConsent, type ISubscription, type ISummaryPricing, type ITechSpec, type ITechnicalSpecColumn, type ITechnicalSpecGroup, type ITransactionBase, type IUnmatched404, type IVariant, type IVariantOptionSelection, type IWishlist, type IWishlistItem, type Id, type InventoryPolicy, InventoryPolicyEnum, type Metadata, NOTIFICATION_TYPE_VALUES, NotificationTypeEnum, ORDER_LOG_TYPE_VALUES, ORDER_STATUS_VALUES, OrderLogTypeEnum, OrderStatusEnum, PAYMENT_GATEWAY_VALUES, PAYMENT_LINK_STATUS_VALUES, PAYMENT_METHOD_VALUES, PAYMENT_STATUS_VALUES, PRICING_TYPE_VALUES, PRODUCT_EVENT_TYPE_VALUES, type Paginated, PaymentGatewayEnum, PaymentLinkStatusEnum, PaymentMethodEnum, PaymentStatusEnum, type PricingType, PricingTypeEnum, type ProductAddonScope, ProductEventTypeEnum, type ProductVariantType, RETIRED_CART_STATUSES, type RedirectTargetType, type ResolvedAddonSelection, SUBSCRIPTION_CHANNEL_VALUES, SUBSCRIPTION_TOPIC_LABELS, SUBSCRIPTION_TOPIC_VALUES, type SoftDeleteFilter, type StockStatus, SubscriptionChannelEnum, SubscriptionTopicEnum, TRANSACTION_TYPE_VALUES, TransactionTypeEnum, type VariantOptionMode, WIRED_EMAIL_TEMPLATE_EVENTS, addonUnitAmount, addonsUnitAmount, canonicalizePath, canonicalizeSlug, formatMoney, groupHasDefaultAddon, normalizeLineQuantity, normalizePath, notificationTypeColorMap, orderLogTypeColorMap, paymentGatewayColorMap, paymentLinkStatusColorMap, paymentMethodColorMap, paymentStatusColorMap, resolveAddonSelections, resolveProductAddonGroups, roundMoney, statusColors, typeColorMap };
1363
+ export { ACTIVE_SUBSCRIPTION_CHANNELS, ADMIN_ROLES, type AddonAmountInput, type AddonSelectionRef, type ApiResponse, type BaseEntity, type BundleGroup, type BundleLine, CAMPAIGN_RECIPIENT_STATUS_VALUES, CAMPAIGN_STATUS_VALUES, CART_STATUS_VALUES, CONFIGURATOR_CONDITION_TYPE_VALUES, CONFIGURATOR_EFFECT_TYPE_VALUES, CONFIGURATOR_ERROR_CODE_VALUES, CONFIGURATOR_SELECT_MODE_VALUES, CONFIGURATOR_SOURCE_VALUES, CampaignRecipientStatusEnum, CampaignStatusEnum, CartStatusEnum, type CheckoutAddressInput, type CheckoutPayload, type CheckoutResult, ConfiguratorConditionTypeEnum, ConfiguratorEffectTypeEnum, ConfiguratorErrorCodeEnum, type ConfiguratorEvalContext, type ConfiguratorEvalError, type ConfiguratorEvalResult, ConfiguratorSelectModeEnum, type ConfiguratorSelections, ConfiguratorSourceEnum, DEFAULT_SUBSCRIPTION_TOPICS, DiscountTypeEnum, EMAIL_TEMPLATE_EVENT_VALUES, EMAIL_TEMPLATE_VARIABLES_BY_EVENT, EmailTemplateEventEnum, FEE_APPLIES_TO_VALUES, FeeAppliesToEnum, type IAddonConfig, type IAddonGroup, type IAddress, type IAdmin, type IAdminCreate, type IAdminRoleType, type IAdminSafe, type IAdminUpdate, type IAppliedFee, type IBannerSlide, type IBlogAuthor, type IBlogCategory, type IBlogCitation, type IBlogPost, type IBrand, type ICampaign, type ICampaignRecipient, type ICampaignStats, type ICart, type ICartItem, type ICategory, type ICompliance, type IConfigurator, type IConfiguratorCondition, type IConfiguratorEffect, type IConfiguratorFacet, type IConfiguratorFacetValue, type IConfiguratorOption, type IConfiguratorPriceAdjustment, type IConfiguratorQuery, type IConfiguratorRule, type IConfiguratorSection, type IConfiguratorStep, type IConfiguratorTarget, type IContact, type IContent, type ICountry, type ICoupon, type ICurrency, type ICustomer, type IDiscountType, type IDocumentation, type IEmailTemplate, type IFaq, type IFaqCategory, type IKeyValue, type ILinePricing, type IMediaAsset, INVENTORY_POLICY_VALUES, type INotification, type IOrder, type IOrderItem, type IOrderLog, type IOrderTracking, type IOrderTransaction, type IPaymentLink, type IPodcastEpisode, type IPrice, type IProduct, type IProductDailyStat, type IProductOptionGroup, type IProductOptionValue, type IProductRelationGroup, type IProductTechnicalSpec, type IProductTechnicalSpecTable, type IProductVariantFields, type IProductVariantOptionGroup, type IProductVariantOptionMatrix, type IProductVariantOptionValue, type IRedirect, type IRedirectSuggestion, type IRefundTransaction, type IRelationGroup, type ISEOMetaData, type ISelectableFee, type IShipFromAddress, type IShipping, type IShippingRate, type IState, type IStock, type IStore, type IStoreFee, type IStoreSettings, type ISubscriber, type ISubscriberConsent, type ISubscription, type ISummaryPricing, type ITechSpec, type ITechnicalSpecColumn, type ITechnicalSpecGroup, type ITransactionBase, type IUnmatched404, type IVariant, type IVariantOptionSelection, type IWishlist, type IWishlistItem, type Id, type InventoryPolicy, InventoryPolicyEnum, MAX_BUNDLE_QUANTITY, type Metadata, NOTIFICATION_TYPE_VALUES, NotificationTypeEnum, ORDER_LOG_TYPE_VALUES, ORDER_STATUS_VALUES, OrderLogTypeEnum, OrderStatusEnum, PAYMENT_GATEWAY_VALUES, PAYMENT_LINK_STATUS_VALUES, PAYMENT_METHOD_VALUES, PAYMENT_STATUS_VALUES, PRICING_TYPE_VALUES, PRODUCT_EVENT_TYPE_VALUES, type Paginated, PaymentGatewayEnum, PaymentLinkStatusEnum, PaymentMethodEnum, PaymentStatusEnum, type PricingType, PricingTypeEnum, type ProductAddonScope, ProductEventTypeEnum, type ProductVariantType, RETIRED_CART_STATUSES, type RedirectTargetType, type ResolvedAddonSelection, SUBSCRIPTION_CHANNEL_VALUES, SUBSCRIPTION_TOPIC_LABELS, SUBSCRIPTION_TOPIC_VALUES, type SoftDeleteFilter, type StockDemandLine, type StockStatus, type StockVerdict, SubscriptionChannelEnum, SubscriptionTopicEnum, TRANSACTION_TYPE_VALUES, TransactionTypeEnum, type VariantOptionMode, WIRED_EMAIL_TEMPLATE_EVENTS, addonUnitAmount, addonsUnitAmount, adjustmentsFor, applyPriceAdjustments, bundleGroupsOf, bundleLineQuantity, bundleUnitFrom, canonicalizePath, canonicalizeSlug, conditionHolds, demandByKey, evaluateConfigurator, formatMoney, groupHasDefaultAddon, isConfigurationValid, normalizeBundleQuantity, normalizeLineQuantity, normalizePath, notificationTypeColorMap, orderByBundle, orderLogTypeColorMap, paymentGatewayColorMap, paymentLinkStatusColorMap, paymentMethodColorMap, paymentStatusColorMap, resolveAddonSelections, resolveProductAddonGroups, roundMoney, statusColors, stockVerdict, typeColorMap };