@cimplify/sdk 0.3.4 → 0.3.6

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
@@ -1,3 +1,95 @@
1
+ /**
2
+ * Observability hooks for monitoring SDK behavior.
3
+ *
4
+ * These hooks allow you to plug in your own logging, metrics, and tracing
5
+ * without the SDK depending on any specific observability library.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const client = createCimplifyClient({
10
+ * hooks: {
11
+ * onRequestStart: ({ method, path }) => {
12
+ * console.log(`[SDK] ${method} ${path}`);
13
+ * },
14
+ * onRequestSuccess: ({ method, path, durationMs }) => {
15
+ * metrics.histogram('sdk.request.duration', durationMs, { method, path });
16
+ * },
17
+ * onRequestError: ({ method, path, error, retryCount }) => {
18
+ * Sentry.captureException(error, { extra: { method, path, retryCount } });
19
+ * },
20
+ * },
21
+ * });
22
+ * ```
23
+ */
24
+ /** Context passed to request lifecycle hooks */
25
+ interface RequestContext {
26
+ /** HTTP method */
27
+ method: "GET" | "POST" | "DELETE";
28
+ /** Request path (e.g., "/api/q", "/api/m") */
29
+ path: string;
30
+ /** Full URL */
31
+ url: string;
32
+ /** Request body (for POST requests) */
33
+ body?: unknown;
34
+ /** Timestamp when request started */
35
+ startTime: number;
36
+ }
37
+ /** Passed when a request starts */
38
+ interface RequestStartEvent extends RequestContext {
39
+ }
40
+ /** Passed when a request succeeds */
41
+ interface RequestSuccessEvent extends RequestContext {
42
+ /** HTTP status code */
43
+ status: number;
44
+ /** Duration in milliseconds */
45
+ durationMs: number;
46
+ }
47
+ /** Passed when a request fails */
48
+ interface RequestErrorEvent extends RequestContext {
49
+ /** The error that occurred */
50
+ error: Error;
51
+ /** Duration in milliseconds */
52
+ durationMs: number;
53
+ /** Number of retries attempted before giving up */
54
+ retryCount: number;
55
+ /** Whether the error is retryable */
56
+ retryable: boolean;
57
+ }
58
+ /** Passed when a retry is about to happen */
59
+ interface RetryEvent extends RequestContext {
60
+ /** Which retry attempt (1, 2, 3...) */
61
+ attempt: number;
62
+ /** Delay before retry in milliseconds */
63
+ delayMs: number;
64
+ /** The error that triggered the retry */
65
+ error: Error;
66
+ }
67
+ /** Passed when session token changes */
68
+ interface SessionChangeEvent {
69
+ /** Previous token (null if none) */
70
+ previousToken: string | null;
71
+ /** New token (null if cleared) */
72
+ newToken: string | null;
73
+ /** Source of the change */
74
+ source: "response" | "manual" | "clear";
75
+ }
76
+ /**
77
+ * Observability hooks configuration.
78
+ * All hooks are optional - only implement what you need.
79
+ */
80
+ interface ObservabilityHooks {
81
+ /** Called when a request is about to be sent */
82
+ onRequestStart?: (event: RequestStartEvent) => void;
83
+ /** Called when a request completes successfully */
84
+ onRequestSuccess?: (event: RequestSuccessEvent) => void;
85
+ /** Called when a request fails (after all retries exhausted) */
86
+ onRequestError?: (event: RequestErrorEvent) => void;
87
+ /** Called before each retry attempt */
88
+ onRetry?: (event: RetryEvent) => void;
89
+ /** Called when session token changes */
90
+ onSessionChange?: (event: SessionChangeEvent) => void;
91
+ }
92
+
1
93
  /** Decimal value represented as string for precision */
2
94
  type Money = string;
3
95
  /** Supported currencies */
@@ -704,22 +796,6 @@ interface SearchOptions {
704
796
  limit?: number;
705
797
  category?: string;
706
798
  }
707
- /**
708
- * Catalogue queries with explicit error handling via Result type.
709
- *
710
- * All methods return `Result<T, CimplifyError>` - no exceptions thrown.
711
- *
712
- * @example
713
- * ```typescript
714
- * const result = await client.catalogue.getProducts({ category: "burgers" });
715
- *
716
- * if (result.ok) {
717
- * console.log("Products:", result.value);
718
- * } else {
719
- * console.error("Failed:", result.error.code);
720
- * }
721
- * ```
722
- */
723
799
  declare class CatalogueQueries {
724
800
  private client;
725
801
  constructor(client: CimplifyClient);
@@ -1241,59 +1317,15 @@ interface CartSummary {
1241
1317
  currency: string;
1242
1318
  }
1243
1319
 
1244
- /**
1245
- * Cart operations with explicit error handling via Result type.
1246
- *
1247
- * All methods return `Result<T, CimplifyError>` - no exceptions thrown.
1248
- *
1249
- * @example
1250
- * ```typescript
1251
- * const result = await client.cart.addItem({ item_id: "prod_123" });
1252
- *
1253
- * if (result.ok) {
1254
- * console.log("Added!", result.value);
1255
- * } else {
1256
- * console.error("Failed:", result.error.code);
1257
- * }
1258
- * ```
1259
- */
1260
1320
  declare class CartOperations {
1261
1321
  private client;
1262
1322
  constructor(client: CimplifyClient);
1263
- /**
1264
- * Get the enriched cart with product names, images, and details.
1265
- * This is the main method for storefront display.
1266
- */
1267
1323
  get(): Promise<Result<UICart, CimplifyError>>;
1268
1324
  getRaw(): Promise<Result<Cart, CimplifyError>>;
1269
1325
  getItems(): Promise<Result<CartItem[], CimplifyError>>;
1270
1326
  getCount(): Promise<Result<number, CimplifyError>>;
1271
1327
  getTotal(): Promise<Result<string, CimplifyError>>;
1272
1328
  getSummary(): Promise<Result<CartSummary, CimplifyError>>;
1273
- /**
1274
- * Add an item to the cart.
1275
- *
1276
- * @example
1277
- * ```typescript
1278
- * const result = await client.cart.addItem({
1279
- * item_id: "prod_burger",
1280
- * quantity: 2,
1281
- * variant_id: "var_large",
1282
- * add_on_options: ["addon_cheese", "addon_bacon"],
1283
- * });
1284
- *
1285
- * if (!result.ok) {
1286
- * switch (result.error.code) {
1287
- * case ErrorCode.ITEM_UNAVAILABLE:
1288
- * toast.error("Item no longer available");
1289
- * break;
1290
- * case ErrorCode.VARIANT_OUT_OF_STOCK:
1291
- * toast.error("Selected option is out of stock");
1292
- * break;
1293
- * }
1294
- * }
1295
- * ```
1296
- */
1297
1329
  addItem(input: AddToCartInput): Promise<Result<Cart, CimplifyError>>;
1298
1330
  updateItem(cartItemId: string, updates: UpdateCartItemInput): Promise<Result<Cart, CimplifyError>>;
1299
1331
  updateQuantity(cartItemId: string, quantity: number): Promise<Result<Cart, CimplifyError>>;
@@ -1972,64 +2004,10 @@ interface CheckoutResult {
1972
2004
  public_key?: string;
1973
2005
  }
1974
2006
 
1975
- /**
1976
- * Generate a cryptographically secure idempotency key.
1977
- * Uses crypto.randomUUID if available, falls back to timestamp + random.
1978
- */
1979
2007
  declare function generateIdempotencyKey(): string;
1980
- /**
1981
- * Checkout service with explicit error handling via Result type.
1982
- *
1983
- * All methods return `Result<T, CimplifyError>` - no exceptions thrown.
1984
- *
1985
- * @example
1986
- * ```typescript
1987
- * const result = await client.checkout.process(formData);
1988
- *
1989
- * if (result.ok) {
1990
- * const checkout = result.value;
1991
- * if (checkout.requires_authorization) {
1992
- * // Handle OTP flow
1993
- * } else if (checkout.client_secret) {
1994
- * // Open Paystack popup
1995
- * }
1996
- * } else {
1997
- * toast.error(result.error.message);
1998
- * }
1999
- * ```
2000
- */
2001
2008
  declare class CheckoutService {
2002
2009
  private client;
2003
2010
  constructor(client: CimplifyClient);
2004
- /**
2005
- * Process checkout with cart data.
2006
- *
2007
- * Automatically generates an idempotency key if not provided to ensure
2008
- * payment safety. The same key is used across retries, preventing
2009
- * duplicate charges if a network error occurs after payment processing.
2010
- *
2011
- * @example
2012
- * ```typescript
2013
- * const result = await client.checkout.process({
2014
- * cart_id: cart.id,
2015
- * customer: { name, email, phone, save_details: true },
2016
- * order_type: "pickup",
2017
- * payment_method: "mobile_money",
2018
- * mobile_money_details: { phone_number, provider: "mtn" },
2019
- * });
2020
- *
2021
- * if (!result.ok) {
2022
- * switch (result.error.code) {
2023
- * case ErrorCode.CART_EMPTY:
2024
- * toast.error("Your cart is empty");
2025
- * break;
2026
- * case ErrorCode.PAYMENT_FAILED:
2027
- * toast.error("Payment failed. Please try again.");
2028
- * break;
2029
- * }
2030
- * }
2031
- * ```
2032
- */
2033
2011
  process(data: CheckoutFormData): Promise<Result<CheckoutResult, CimplifyError>>;
2034
2012
  initializePayment(orderId: string, method: PaymentMethod): Promise<Result<InitializePaymentResult, CimplifyError>>;
2035
2013
  submitAuthorization(input: SubmitAuthorizationInput): Promise<Result<CheckoutResult, CimplifyError>>;
@@ -2136,24 +2114,6 @@ interface ChangePasswordInput {
2136
2114
  interface SuccessResult$1 {
2137
2115
  success: boolean;
2138
2116
  }
2139
- /**
2140
- * Auth service with explicit error handling via Result type.
2141
- *
2142
- * All methods return `Result<T, CimplifyError>` - no exceptions thrown.
2143
- *
2144
- * @example
2145
- * ```typescript
2146
- * const result = await client.auth.verifyOtp("123456");
2147
- *
2148
- * if (result.ok) {
2149
- * console.log("Logged in as:", result.value.customer.name);
2150
- * } else {
2151
- * if (result.error.code === "INVALID_OTP") {
2152
- * toast.error("Invalid code. Please try again.");
2153
- * }
2154
- * }
2155
- * ```
2156
- */
2157
2117
  declare class AuthService {
2158
2118
  private client;
2159
2119
  constructor(client: CimplifyClient);
@@ -2839,6 +2799,8 @@ interface CimplifyConfig {
2839
2799
  maxRetries?: number;
2840
2800
  /** Base delay between retries in milliseconds (default: 1000) */
2841
2801
  retryDelay?: number;
2802
+ /** Observability hooks for logging, metrics, and tracing */
2803
+ hooks?: ObservabilityHooks;
2842
2804
  }
2843
2805
  declare class CimplifyClient {
2844
2806
  private baseUrl;
@@ -2849,7 +2811,7 @@ declare class CimplifyClient {
2849
2811
  private timeout;
2850
2812
  private maxRetries;
2851
2813
  private retryDelay;
2852
- /** In-flight request deduplication map */
2814
+ private hooks;
2853
2815
  private inflightRequests;
2854
2816
  private _catalogue?;
2855
2817
  private _cart?;
@@ -2869,30 +2831,10 @@ declare class CimplifyClient {
2869
2831
  private saveSessionToken;
2870
2832
  private getHeaders;
2871
2833
  private updateSessionFromResponse;
2872
- /**
2873
- * Resilient fetch with timeout and automatic retries for network errors.
2874
- * Uses exponential backoff: 1s, 2s, 4s between retries.
2875
- */
2876
2834
  private resilientFetch;
2877
- /**
2878
- * Generate a deduplication key for a request.
2879
- * Same query + variables = same key = deduplicated.
2880
- */
2881
2835
  private getDedupeKey;
2882
- /**
2883
- * Execute a request with deduplication.
2884
- * If an identical request is already in-flight, return the same promise.
2885
- * This prevents redundant network calls when multiple components request the same data.
2886
- */
2887
2836
  private deduplicatedRequest;
2888
- /**
2889
- * Execute a query with deduplication.
2890
- * Multiple identical queries made simultaneously will share a single network request.
2891
- */
2892
2837
  query<T = unknown>(query: string, variables?: Record<string, unknown>): Promise<T>;
2893
- /**
2894
- * Execute a mutation. NOT deduplicated - mutations have side effects.
2895
- */
2896
2838
  call<T = unknown>(method: string, args?: unknown): Promise<T>;
2897
2839
  get<T = unknown>(path: string): Promise<T>;
2898
2840
  post<T = unknown>(path: string, body?: unknown): Promise<T>;
@@ -3435,4 +3377,4 @@ interface ApiResponse<T> {
3435
3377
  metadata?: ResponseMetadata;
3436
3378
  }
3437
3379
 
3438
- export { AUTHORIZATION_TYPE, AUTH_MUTATION, type AddOn, type AddOnDetails, type AddOnGroupDetails, type AddOnOption, type AddOnOptionDetails, type AddOnOptionPrice, type AddOnWithOptions, type AddToCartInput, type AddressData, type AdjustmentType, type AmountToPay, type ApiError, type ApiResponse, type AppliedDiscount, type AuthResponse, AuthService, type AuthStatus, type AuthorizationType, type AvailabilityCheck, type AvailabilityResult, type AvailableSlot, type BenefitType, type Booking, type BookingRequirementOverride, type BookingStatus, type BookingWithDetails, type BufferTimes, type Bundle, type BundleComponentData, type BundleComponentInfo, type BundlePriceType, type BundleProduct, type BundleSelectionData, type BundleSelectionInput, type BundleStoredSelection, type BundleSummary, type BundleWithDetails, type Business, type BusinessHours, type BusinessPreferences, BusinessService, type BusinessSettings, type BusinessType, type BusinessWithLocations, CHECKOUT_MODE, CHECKOUT_MUTATION, CHECKOUT_STEP, CURRENCY_SYMBOLS, type CancelBookingInput, type CancelOrderInput, type CancellationPolicy, type Cart, type CartAddOn, type CartChannel, type CartItem, type CartItemDetails, CartOperations, type CartStatus, type CartSummary, type CartTotals, CatalogueQueries, type Category, type CategoryInfo, type CategorySummary, type ChangePasswordInput, type CheckSlotAvailabilityInput, type CheckoutAddressInfo, type CheckoutCustomerInfo, type CheckoutFormData, type CheckoutInput, type CheckoutMode, CheckoutService as CheckoutOperations, type CheckoutOrderType, type CheckoutPaymentMethod, type CheckoutResult, CheckoutService, type CheckoutStep, type ChosenPrice, CimplifyClient, type CimplifyConfig, CimplifyError, type Collection, type CollectionProduct, type CollectionSummary, type ComponentGroup, type ComponentGroupWithComponents, type ComponentPriceBreakdown, type ComponentSelectionInput, type ComponentSourceType, type Composite, type CompositeComponent, type CompositePriceBreakdown, type CompositePriceResult, type CompositePricingMode, type CompositeSelectionData, type ComponentSelectionInput as CompositeSelectionInput, type CompositeStoredSelection, type CompositeWithDetails, type ContactType, type CreateAddressInput, type CreateMobileMoneyInput, type Currency, type Customer, type CustomerAddress, type CustomerLinkPreferences, type CustomerMobileMoney, type CustomerServicePreferences, DEFAULT_COUNTRY, DEFAULT_CURRENCY, type DayAvailability, type DepositResult, type DepositType, type DeviceType, type DigitalProductType, type DiscountBreakdown, type DiscountDetails, type DisplayAddOn, type DisplayAddOnOption, type DisplayCart, type DisplayCartItem, type EnrollAndLinkOrderInput, type EnrollAndLinkOrderResult, type EnrollmentData, type Err, ErrorCode, type ErrorCodeType, type FeeBearerType, type FormatCompactOptions, type FormatPriceOptions, type FulfillmentLink, type FulfillmentStatus, type FulfillmentType, type GetAvailableSlotsInput, type GetOrdersOptions, type GetProductsOptions, type GroupPricingBehavior, type InitializePaymentResult, InventoryService, type InventorySummary, type InventoryType, type KitchenOrderItem, type KitchenOrderResult, LINK_MUTATION, LINK_QUERY, type LineConfiguration, type LineItem, type LineType, type LinkData, type LinkEnrollResult, LinkService, type LinkSession, type LinkStatusResult, type LiteBootstrap, LiteService, type Location, type LocationAppointment, type LocationProductPrice, type LocationStock, type LocationTaxBehavior, type LocationTaxOverrides, type LocationTimeProfile, type LocationWithDetails, MOBILE_MONEY_PROVIDER, MOBILE_MONEY_PROVIDERS, type MobileMoneyData, type MobileMoneyDetails, type MobileMoneyProvider, type Money, type MutationRequest, ORDER_MUTATION, ORDER_TYPE, type Ok, type Order, type OrderChannel, type OrderFilter, type OrderFulfillmentSummary, type OrderGroup, type OrderGroupDetails, type OrderGroupPayment, type OrderGroupPaymentState, type OrderGroupPaymentSummary, type OrderHistory, type OrderLineState, type OrderLineStatus, type OrderPaymentEvent, OrderQueries, type OrderSplitDetail, type OrderStatus, type OtpResult, PAYMENT_METHOD, PAYMENT_MUTATION, PAYMENT_STATE, PICKUP_TIME_TYPE, type Pagination, type PaginationParams, type ParsedPrice, type Payment, type PaymentErrorDetails, type PaymentMethod, type PaymentMethodType, type PaymentProcessingState, type PaymentProvider, type PaymentResponse, type PaymentState, type PaymentStatus, type PaymentStatusResponse, type PickupTime, type PickupTimeType, type Price, type PriceAdjustment, type PriceDecisionPath, type PriceEntryType, type PriceInfo, type PricePathTaxInfo, type PriceSource, type PricingOverrides, type Product, type ProductAddOn, type ProductAvailability, type ProductStock, type ProductTimeProfile, type ProductType, type ProductVariant, type ProductVariantValue, type ProductWithDetails, type ProductWithPrice, QueryBuilder, type QueryRequest, type RefundOrderInput, type ReminderMethod, type ReminderSettings, type RequestOtpInput, type RescheduleBookingInput, type ResourceAssignment, type ResourceAvailabilityException, type ResourceAvailabilityRule, type ResourceType, type ResponseMetadata, type Result, type RevokeAllSessionsResult, type RevokeSessionResult, type Room, type SalesChannel, type SchedulingMetadata, type SchedulingResult, SchedulingService, type SearchOptions, type SelectedAddOnOption, type Service, type ServiceAvailabilityException, type ServiceAvailabilityParams, type ServiceAvailabilityResult, type ServiceAvailabilityRule, type ServiceCharge, type ServiceNotes, type ServiceScheduleRequest, type ServiceStaffRequirement, type ServiceStatus, type ServiceWithStaff, type Staff, type StaffAssignment, type StaffAvailabilityException, type StaffAvailabilityRule, type StaffBookingProfile, type StaffRole, type StaffScheduleItem, type Stock, type StockLevel, type StockOwnershipType, type StockStatus, type StorefrontBootstrap, type SubmitAuthorizationInput, type Table, type TableInfo, type TaxComponent, type TaxInfo, type TaxPathComponent, type TimeRange, type TimeRanges, type TimeSlot, type UICart, type UICartBusiness, type UICartCustomer, type UICartLocation, type UICartPricing, type UpdateAddressInput, type UpdateCartItemInput, type UpdateOrderStatusInput, type UpdateProfileInput, type VariantAxis, type VariantAxisSelection, type VariantAxisValue, type VariantAxisWithValues, type VariantDetails, type VariantDetailsDTO, type VariantDisplayAttribute, type VariantLocationAvailability, type VariantStock, type VariantStrategy, type VerifyOtpInput, categorizePaymentError, combine, combineObject, createCimplifyClient, detectMobileMoneyProvider, err, extractPriceInfo, flatMap, formatMoney, formatNumberCompact, formatPrice, formatPriceAdjustment, formatPriceCompact, formatProductPrice, fromPromise, generateIdempotencyKey, getBasePrice, getCurrencySymbol, getDiscountPercentage, getDisplayPrice, getMarkupPercentage, getOrElse, getProductCurrency, isCimplifyError, isErr, isOk, isOnSale, isRetryableError, mapError, mapResult, normalizePaymentResponse, normalizeStatusResponse, ok, parsePrice, parsePricePath, parsedPriceToPriceInfo, query, toNullable, tryCatch, unwrap };
3380
+ export { AUTHORIZATION_TYPE, AUTH_MUTATION, type AddOn, type AddOnDetails, type AddOnGroupDetails, type AddOnOption, type AddOnOptionDetails, type AddOnOptionPrice, type AddOnWithOptions, type AddToCartInput, type AddressData, type AdjustmentType, type AmountToPay, type ApiError, type ApiResponse, type AppliedDiscount, type AuthResponse, AuthService, type AuthStatus, type AuthorizationType, type AvailabilityCheck, type AvailabilityResult, type AvailableSlot, type BenefitType, type Booking, type BookingRequirementOverride, type BookingStatus, type BookingWithDetails, type BufferTimes, type Bundle, type BundleComponentData, type BundleComponentInfo, type BundlePriceType, type BundleProduct, type BundleSelectionData, type BundleSelectionInput, type BundleStoredSelection, type BundleSummary, type BundleWithDetails, type Business, type BusinessHours, type BusinessPreferences, BusinessService, type BusinessSettings, type BusinessType, type BusinessWithLocations, CHECKOUT_MODE, CHECKOUT_MUTATION, CHECKOUT_STEP, CURRENCY_SYMBOLS, type CancelBookingInput, type CancelOrderInput, type CancellationPolicy, type Cart, type CartAddOn, type CartChannel, type CartItem, type CartItemDetails, CartOperations, type CartStatus, type CartSummary, type CartTotals, CatalogueQueries, type Category, type CategoryInfo, type CategorySummary, type ChangePasswordInput, type CheckSlotAvailabilityInput, type CheckoutAddressInfo, type CheckoutCustomerInfo, type CheckoutFormData, type CheckoutInput, type CheckoutMode, CheckoutService as CheckoutOperations, type CheckoutOrderType, type CheckoutPaymentMethod, type CheckoutResult, CheckoutService, type CheckoutStep, type ChosenPrice, CimplifyClient, type CimplifyConfig, CimplifyError, type Collection, type CollectionProduct, type CollectionSummary, type ComponentGroup, type ComponentGroupWithComponents, type ComponentPriceBreakdown, type ComponentSelectionInput, type ComponentSourceType, type Composite, type CompositeComponent, type CompositePriceBreakdown, type CompositePriceResult, type CompositePricingMode, type CompositeSelectionData, type ComponentSelectionInput as CompositeSelectionInput, type CompositeStoredSelection, type CompositeWithDetails, type ContactType, type CreateAddressInput, type CreateMobileMoneyInput, type Currency, type Customer, type CustomerAddress, type CustomerLinkPreferences, type CustomerMobileMoney, type CustomerServicePreferences, DEFAULT_COUNTRY, DEFAULT_CURRENCY, type DayAvailability, type DepositResult, type DepositType, type DeviceType, type DigitalProductType, type DiscountBreakdown, type DiscountDetails, type DisplayAddOn, type DisplayAddOnOption, type DisplayCart, type DisplayCartItem, type EnrollAndLinkOrderInput, type EnrollAndLinkOrderResult, type EnrollmentData, type Err, ErrorCode, type ErrorCodeType, type FeeBearerType, type FormatCompactOptions, type FormatPriceOptions, type FulfillmentLink, type FulfillmentStatus, type FulfillmentType, type GetAvailableSlotsInput, type GetOrdersOptions, type GetProductsOptions, type GroupPricingBehavior, type InitializePaymentResult, InventoryService, type InventorySummary, type InventoryType, type KitchenOrderItem, type KitchenOrderResult, LINK_MUTATION, LINK_QUERY, type LineConfiguration, type LineItem, type LineType, type LinkData, type LinkEnrollResult, LinkService, type LinkSession, type LinkStatusResult, type LiteBootstrap, LiteService, type Location, type LocationAppointment, type LocationProductPrice, type LocationStock, type LocationTaxBehavior, type LocationTaxOverrides, type LocationTimeProfile, type LocationWithDetails, MOBILE_MONEY_PROVIDER, MOBILE_MONEY_PROVIDERS, type MobileMoneyData, type MobileMoneyDetails, type MobileMoneyProvider, type Money, type MutationRequest, ORDER_MUTATION, ORDER_TYPE, type ObservabilityHooks, type Ok, type Order, type OrderChannel, type OrderFilter, type OrderFulfillmentSummary, type OrderGroup, type OrderGroupDetails, type OrderGroupPayment, type OrderGroupPaymentState, type OrderGroupPaymentSummary, type OrderHistory, type OrderLineState, type OrderLineStatus, type OrderPaymentEvent, OrderQueries, type OrderSplitDetail, type OrderStatus, type OtpResult, PAYMENT_METHOD, PAYMENT_MUTATION, PAYMENT_STATE, PICKUP_TIME_TYPE, type Pagination, type PaginationParams, type ParsedPrice, type Payment, type PaymentErrorDetails, type PaymentMethod, type PaymentMethodType, type PaymentProcessingState, type PaymentProvider, type PaymentResponse, type PaymentState, type PaymentStatus, type PaymentStatusResponse, type PickupTime, type PickupTimeType, type Price, type PriceAdjustment, type PriceDecisionPath, type PriceEntryType, type PriceInfo, type PricePathTaxInfo, type PriceSource, type PricingOverrides, type Product, type ProductAddOn, type ProductAvailability, type ProductStock, type ProductTimeProfile, type ProductType, type ProductVariant, type ProductVariantValue, type ProductWithDetails, type ProductWithPrice, QueryBuilder, type QueryRequest, type RefundOrderInput, type ReminderMethod, type ReminderSettings, type RequestContext, type RequestErrorEvent, type RequestOtpInput, type RequestStartEvent, type RequestSuccessEvent, type RescheduleBookingInput, type ResourceAssignment, type ResourceAvailabilityException, type ResourceAvailabilityRule, type ResourceType, type ResponseMetadata, type Result, type RetryEvent, type RevokeAllSessionsResult, type RevokeSessionResult, type Room, type SalesChannel, type SchedulingMetadata, type SchedulingResult, SchedulingService, type SearchOptions, type SelectedAddOnOption, type Service, type ServiceAvailabilityException, type ServiceAvailabilityParams, type ServiceAvailabilityResult, type ServiceAvailabilityRule, type ServiceCharge, type ServiceNotes, type ServiceScheduleRequest, type ServiceStaffRequirement, type ServiceStatus, type ServiceWithStaff, type SessionChangeEvent, type Staff, type StaffAssignment, type StaffAvailabilityException, type StaffAvailabilityRule, type StaffBookingProfile, type StaffRole, type StaffScheduleItem, type Stock, type StockLevel, type StockOwnershipType, type StockStatus, type StorefrontBootstrap, type SubmitAuthorizationInput, type Table, type TableInfo, type TaxComponent, type TaxInfo, type TaxPathComponent, type TimeRange, type TimeRanges, type TimeSlot, type UICart, type UICartBusiness, type UICartCustomer, type UICartLocation, type UICartPricing, type UpdateAddressInput, type UpdateCartItemInput, type UpdateOrderStatusInput, type UpdateProfileInput, type VariantAxis, type VariantAxisSelection, type VariantAxisValue, type VariantAxisWithValues, type VariantDetails, type VariantDetailsDTO, type VariantDisplayAttribute, type VariantLocationAvailability, type VariantStock, type VariantStrategy, type VerifyOtpInput, categorizePaymentError, combine, combineObject, createCimplifyClient, detectMobileMoneyProvider, err, extractPriceInfo, flatMap, formatMoney, formatNumberCompact, formatPrice, formatPriceAdjustment, formatPriceCompact, formatProductPrice, fromPromise, generateIdempotencyKey, getBasePrice, getCurrencySymbol, getDiscountPercentage, getDisplayPrice, getMarkupPercentage, getOrElse, getProductCurrency, isCimplifyError, isErr, isOk, isOnSale, isRetryableError, mapError, mapResult, normalizePaymentResponse, normalizeStatusResponse, ok, parsePrice, parsePricePath, parsedPriceToPriceInfo, query, toNullable, tryCatch, unwrap };