import { P as PaymentAuthorizationAdapter, c as PaymentAuthorizationContext, d as PaymentAuthorizationOutcome, e as ChatReplyCard } from './catalogue-B4eLL8Mi.js'; export { A as ActivityRecommendation, f as ActivityRecommendationsResponse, g as ActivityService, h as ActivityStateResponse, i as AmountToPay, j as AuthService, k as AuthStatus, l as AuthorizeCardPopupOptions, m as AutocompletePrediction, n as AutocompleteResponse, o as AvailabilityResult, p as AvailableSlot, B as Booking, q as BookingModificationType, r as BookingStatus, s as BookingWithDetails, t as BufferTimes, u as Business, v as BusinessDetailsDTO, w as BusinessHours, x as BusinessPreferences, y as BusinessService, z as BusinessSettings, D as BusinessWithLocations, a as CacheOptions, E as CancelBookingInput, F as CancelBookingResult, G as CancelOrderInput, H as CancellationPolicy, I as CardPopupAction, J as CartOperations, K as CatalogueQueries, L as CatalogueResult, M as CatalogueSnapshot, N as CategoryInfo, O as ChatAttachment, Q as ChatConversation, S as ChatConversationResponse, T as ChatMessage, U as ChatReplyContext, V as ChatUploadAttachment, W as ChatWidgetStarter, X as CheckSlotAvailabilityInput, Y as CheckSlotAvailabilityResult, Z as CheckoutInput, _ as CheckoutOperations, _ as CheckoutService, C as CimplifyClient, $ as CimplifyConfig, a0 as CimplifyElement, a1 as CimplifyElements, a2 as ClaimExternalChatsResult, a3 as ClaimSessionResult, a4 as ContentType, a5 as CustomerBooking, a6 as CustomerBookingServiceItem, a7 as CustomerServicePreferences, a8 as DayAvailability, a9 as DeliveryFeeDetails, aa as DeliveryFeeResponse, ab as DeliveryFeeStatus, ac as DeliveryOption, ad as DeliveryOptionsQuery, ae as DeliveryOptionsResponse, af as DeliveryService, ag as DepositResult, ah as DismissMessageResponse, ai as EnrichedOrder, aj as EnrichedOrderItem, ak as Err, al as ExternalChatClaimAttempt, am as ExternalChatClaimDisposition, an as FeeBearerType, ao as FetchQuoteInput, ap as FulfillmentLink, aq as FulfillmentStatus, ar as FulfillmentSummaryDTO, as as FulfillmentType, at as FxQuote, au as FxQuoteRequest, av as FxQuoteStatus, aw as FxRateResponse, ax as FxService, ay as GetAvailableSlotsInput, az as GetDeliveryOptionsParams, aA as GetOrdersOptions, aB as GetProductsOptions, aC as GroupOrderInfo, aD as HostedPurchaseIntentService, aE as InventoryService, aF as LifecyclePhase, aG as LineItem, aH as LineType, aI as LinkService, aJ as LiteBootstrap, aK as LiteDayHours, aL as LiteHoursRange, aM as LiteService, aN as Location, aO as LocationBooking, aP as LocationTaxBehavior, aQ as LocationTaxOverrides, aR as LocationTimeProfile, aS as LocationWithDetails, aT as ObservabilityHooks, aU as Ok, aV as Order, aW as OrderCustomerInfo, aX as OrderDiscountInfo, aY as OrderFilter, aZ as OrderFulfillmentSummary, a_ as OrderGroup, a$ as OrderGroupDetails, b0 as OrderGroupPayment, b1 as OrderGroupPaymentState, b2 as OrderGroupPaymentStatus, b3 as OrderGroupPaymentSummary, b4 as OrderGroupStatus, b5 as OrderHistory, b6 as OrderLineState, b7 as OrderLineStatus, b8 as OrderLocationInfo, b9 as OrderPaymentEvent, ba as OrderPricingView, bb as OrderQueries, bc as OrderSplitDetail, bd as OrderStaffInfo, be as OrderStatus, bf as OrderTimestampsDTO, bg as Origin, bh as OriginActor, bi as OriginChannel, bj as OtpResult, bk as PAYMENT_AUTHORIZATION_OUTCOME_STATUS, bl as PAYMENT_AUTHORIZATION_PROVIDER, bm as PURCHASE_INTENT_ROUTE, bn as PaymentAuthorizationAdapterRegistry, bo as PaymentInfoDTO, bp as PaymentState, bq as PlaceDetailsResponse, br as PlacesService, bs as PriceQuote, bt as PricingOverrides, bu as ProviderResolutionSource, bv as PurchaseIntentActionDecision, bw as PurchaseIntentRequestOptions, bx as PurchaseIntentResolveOptions, by as PurchaseIntentResolveStatus, bz as PurchaseIntentResolver, bA as PurchaseIntentService, bB as PurchaseIntentTransport, bC as QuoteBundleSelectionInput, bD as QuoteCompositeSelectionInput, bE as QuoteDynamicBuckets, bF as QuoteStatus, bG as QuoteUiMessage, R as ReadRequestOptions, bH as RefreshQuoteInput, bI as RefreshQuoteResult, bJ as RefundOrderInput, bK as RelatedCandidate, bL as RelatedProduct, bM as RelatedProductsEnrichment, bN as RelationType, bO as ReminderMethod, bP as ReminderSettings, bQ as ReorderResult, bR as RequestContext, bS as RequestErrorEvent, bT as RequestOptions, bU as RequestRetryPolicy, bV as RequestSource, bW as RequestStartEvent, bX as RequestSuccessEvent, bY as RescheduleBookingInput, bZ as RescheduleBookingResult, b_ as RescheduleHistoryRecord, b$ as ResourceAssignment, c0 as ResourceInfo, b as Result, c1 as RetryEvent, c2 as Room, c3 as SESSION_CHANGE_SOURCE, c4 as SchedulingMetadata, c5 as SchedulingResult, c6 as SchedulingService, c7 as SenderType, c8 as Service, c9 as ServiceAvailabilityParams, ca as ServiceAvailabilityResult, cb as ServiceCharge, cc as ServiceNotes, cd as ServiceScheduleRequest, ce as ServiceStatus, cf as SessionActivityData, cg as SessionChangeEvent, ch as SessionChangeSource, ci as SessionMessage, cj as SessionService, ck as SlotResourceInfo, cl as SlotStaffInfo, cm as Staff, cn as StaffAssignment, co as StaffRole, cp as StaffScheduleItem, cq as StockLevel, cr as StockStatus, cs as StoreCreditBalance, ct as StoreCreditQueries, cu as StorefrontBootstrap, cv as SubscriptionService, cw as SupportService, cx as Table, cy as TimeRange, cz as TimeRanges, cA as TimeSlot, cB as TrackCategoryViewOptions, cC as TrackProductViewOptions, cD as UpdateOrderStatusInput, cE as UpdateProfileInput, cF as UploadInitResponse, cG as UploadResult, cH as UploadService, cI as combine, cJ as combineObject, cK as createCimplifyClient, cL as createDefaultPaymentAuthorizationAdapterRegistry, cM as createElements, cN as err, cO as flatMap, cP as fromPromise, cQ as getOrElse, cR as isErr, cS as isOk, cT as mapError, cU as mapResult, cV as ok, cW as toNullable, cX as tryCatch, cY as unwrap } from './catalogue-B4eLL8Mi.js'; export { c as clearPurchaseIntentIdempotencyKey, g as generateIdempotencyKey, i as purchaseIntentIdempotencyKey } from './index-DJwXmoaP.js'; import { f as CheckoutPaymentMethodKind, g as ConfirmPurchaseIntentResponse, h as PURCHASE_INTENT_CONFIRM_STATUS, i as ConfirmPurchaseIntentRequest, j as CheckoutTermsView, k as PaymentOptionView, e as ProductWithDetails, T as TaxPriceDisplayMode, P as Product, D as DurationUnit, A as ApiError } from './elements-Bty6Qs_N.js'; export { l as AUTHORIZATION_TYPE, m as AUTH_MUTATION, n as AbortablePromise, o as AddOn, p as AddOnDetails, q as AddOnGroupDetails, r as AddOnOption, s as AddOnOptionDetails, t as AddOnOptionPrice, u as AddOnWithOptions, v as AddToCartInput, w as AddressAuthorizationData, x as AddressData, y as AddressInfo, z as AddressValue, B as AdjustmentType, E as AppliedDiscount, F as AttributeAppliesTo, G as AttributeType, H as AttributeValidationRules, I as AttributeVisibility, J as AuthResponse, K as AuthenticatedCustomer, L as AuthenticatedData, M as AuthorizationType, N as BOUNDARY_KIND, O as BenefitType, Q as BillingFrequency, R as BillingMarkupType, V as BillingPlanType, W as BoundaryKind, X as Bundle, Y as BundleComponentData, Z as BundleComponentInfo, _ as BundleComponentVariantView, $ as BundleComponentView, a0 as BundlePriceType, a1 as BundleProduct, a2 as BundleSelectionData, a3 as BundleSelectionInput, a4 as BundleStoredSelection, a5 as BundleSummary, a6 as BundleWithDetails, a7 as CHECKOUT_COMPLIANCE_LANE, a8 as CHECKOUT_COMPLIANCE_REASON, a9 as CHECKOUT_INVALIDATION_REASON, aa as CHECKOUT_MATERIAL_TERMS_COMPONENT, ab as CHECKOUT_MODE, ac as CHECKOUT_MUTATION, ad as CHECKOUT_NEXT_ACTION, ae as CHECKOUT_ORDER_RESULT_STATUS, af as CHECKOUT_PROTECTION_STATUS, ag as CHECKOUT_PURCHASE_SURFACE, ah as CHECKOUT_STATUS, ai as CHECKOUT_STEP, aj as CHECKOUT_TERMS_COMPONENT, ak as CHECKOUT_TERMS_DELTA_KIND, al as CONTACT_TYPE, am as CanonicalSourceAuthority, an as Cart, ao as CartAddOn, ap as CartChannel, aq as CartIntentCheckoutInput, ar as CartItem, as as CartItemDetails, at as CartMutationResult, au as CartNotice, av as CartStatus, aw as CartSummary, ax as CartTotals, b as Category, ay as CategorySummary, az as CheckoutAddressInfo, aA as CheckoutCartData, aB as CheckoutCartItem, aC as CheckoutCollectionMethod, aD as CheckoutCollectionOption, aE as CheckoutCollectionOptions, aF as CheckoutComplianceDecision, aG as CheckoutComplianceLane, aH as CheckoutComplianceReasonCode, aI as CheckoutCustomerInfo, aJ as CheckoutDestinationInput, aK as CheckoutFormData, aL as CheckoutInvalidationReason, aM as CheckoutMaterialTerms, aN as CheckoutMaterialTermsComponent, aO as CheckoutMode, aP as CheckoutMoneyComponents, aQ as CheckoutOfferKind, aR as CheckoutOrderType, aS as CheckoutPaymentMethod, aT as CheckoutProtectionStatus, aU as CheckoutProtectionView, aV as CheckoutPurchaseSurface, aW as CheckoutResult, aX as CheckoutSourceKind, aY as CheckoutStatus, aZ as CheckoutStatusContext, a_ as CheckoutStep, a$ as CheckoutTermsComponent, b0 as CheckoutTermsDelta, a as ChosenPrice, c as CimplifyError, b1 as ClaimedCustomer, d as Collection, b2 as CollectionProduct, b3 as CollectionSummary, b4 as ComponentGroup, b5 as ComponentGroupWithComponents, b6 as ComponentPriceBreakdown, b7 as ComponentSchedulingData, b8 as ComponentSelectionInput, b9 as ComponentSourceType, ba as Composite, bb as CompositeComponent, bc as CompositeComponentView, bd as CompositeGroupView, be as CompositePriceBreakdown, bf as CompositePriceResult, bg as CompositePricingMode, bh as CompositeSelectionData, b8 as CompositeSelectionInput, bi as CompositeStoredSelection, bj as CompositeWithDetails, bk as ContactType, bl as CreateAddressInput, bm as CreateMobileMoneyInput, C as CurrencyCode, bn as CustomAttributeDefinition, bo as CustomAttributeValue, bp as Customer, bq as CustomerAddress, br as CustomerInputValue, bs as CustomerLinkPreferences, bt as CustomerMobileMoney, bu as DEFAULT_COUNTRY, bv as DEFAULT_CURRENCY, bw as DEVICE_TYPE, bx as DURATION_UNIT, by as DateRangeValue, bz as Deal, bA as DealBenefitType, bB as DepositType, bC as DestinationQuote, bD as DestinationQuoteAddress, bE as DestinationQuoteInput, bF as DeviceType, bG as DigitalProductType, bH as DiscountBreakdown, bI as DiscountDetails, bJ as DiscountValidation, bK as DisplayAddOn, bL as DisplayAddOnOption, bM as DisplayCart, bN as DisplayCartItem, bO as DisplayMode, bP as ELEMENTS_AUTH_CONTACT_TYPES, bQ as ELEMENTS_AUTH_MODES, bR as ELEMENTS_AUTH_PROMPTS, bS as ELEMENT_TYPES, bT as ERROR_HINTS, bU as EVENT_TYPES, bV as ElementAppearance, bW as ElementEventHandler, bX as ElementEventType, bY as ElementOptions, bZ as ElementType, b_ as ElementsAuthContactType, b$ as ElementsAuthMode, c0 as ElementsAuthOptions, c1 as ElementsAuthPrompt, c2 as ElementsCheckoutData, c3 as ElementsCheckoutResult, c4 as ElementsCustomerInfo, c5 as ElementsOptions, c6 as EligiblePlansQuery, c7 as EnrollAndLinkOrderInput, c8 as EnrollAndLinkOrderResult, c9 as EnrollmentData, ca as ErrorCode, cb as ErrorCodeType, cc as ErrorHint, cd as FacetValue, ce as FormattedPlanOption, cf as GroupPricingBehavior, cg as INPUT_FIELD_TYPE, ch as IdempotencyMismatchError, ci as IframeToParentMessage, cj as InitializePaymentResult, ck as InputFieldType, cl as InputFieldValidation, cm as InventoryType, cn as KnowledgeArticle, co as LEGACY_CHECKOUT_PAYMENT_METHOD_ALIAS, cp as LEGACY_CHECKOUT_PAYMENT_STATUS, cq as LINK_MUTATION, cr as LINK_QUERY, cs as LineConfiguration, ct as LinkData, cu as LinkEnrollResult, cv as LinkSession, cw as LinkStatusResult, cx as LocationProductPrice, cy as LocationValue, cz as MAX_PAYMENT_AUTHORIZATION_STEPS, cA as MESSAGE_TYPES, cB as MOBILE_MONEY_PROVIDER, cC as MOBILE_MONEY_TENDER_AUTHORITY_KIND, cD as MeasurementValue, cE as MintPurchaseIntentRequest, cF as MobileMoneyData, cG as MobileMoneyDetails, cH as MobileMoneyProvider, cI as MobileMoneyTenderPreference, cJ as Money, cK as NATIVE_PURCHASE_PLATFORM, cL as NativeAddOnSelection, cM as NativePurchasePlatform, cN as NextAction, cO as ORDER_MUTATION, cP as ORDER_TYPE, cQ as OfferRef, cR as OrderType, cS as PAYMENT_COLLECTION_MODE, cT as PAYMENT_INSTRUMENT_DISPLAY_KIND, cU as PAYMENT_METHOD, cV as PAYMENT_MUTATION, cW as PAYMENT_OPTION_NEXT_ACTION, cX as PAYMENT_OPTION_STATUS, cY as PAYMENT_STATE, cZ as PICKUP_TIME_TYPE, c_ as PRODUCT_TYPE, c$ as PURCHASE_DISPOSITION, d0 as PURCHASE_INTENT_ACTION_DECISION, d1 as PURCHASE_INTENT_ERROR_CODE, d2 as PURCHASE_INTENT_LINE_CONFIGURATION_KIND, d3 as PURCHASE_INTENT_MOBILE_MONEY_NETWORK, d4 as PURCHASE_INTENT_OFFER_KIND, d5 as PURCHASE_INTENT_PAYMENT_METHOD, d6 as PURCHASE_INTENT_PAYMENT_PROVIDER, d7 as PURCHASE_INTENT_RESOLUTION_KIND, d8 as PURCHASE_INTENT_RESOLVE_STATUS, d9 as PURCHASE_INTENT_SELLABLE_KIND, da as PURCHASE_INTENT_SOURCE_KIND, db as PURCHASE_INTENT_STATUS, dc as PURCHASE_SURFACE, dd as PURCHASING_PRINCIPAL_KIND, de as Pagination, df as PaginationParams, dg as ParentToIframeMessage, dh as Payment, di as PaymentAuthorizationKind, dj as PaymentAuthorizationSubmission, dk as PaymentCollectionMode, dl as PaymentErrorDetails, dm as PaymentInstrumentDisplay, dn as PaymentMethod, dp as PaymentMethodInfo, dq as PaymentMethodType, dr as PaymentNextActionKind, ds as PaymentOptionStatus, dt as PaymentProcessingState, du as PaymentProvider, dv as PaymentProviderKind, dw as PaymentResponse, dx as PaymentStatus, dy as PaymentStatusResponse, dz as PhoneValue, dA as PickupTime, dB as PickupTimeType, dC as PreparePurchaseIntentRequest, dD as Price, dE as PriceAdjustment, dF as PriceDecisionPath, dG as PriceEntryType, dH as PricePathTaxInfo, dI as PriceSource, dJ as ProcessAndResolveOptions, dK as ProcessCheckoutOptions, dL as ProcessCheckoutResult, dM as ProductAddOn, dN as ProductAvailability, dO as ProductAvailabilityNow, dP as ProductBillingPlan, dQ as ProductDealInfo, dR as ProductInputField, dS as ProductProperty, dT as ProductRenderHint, dU as ProductTaxonomy, dV as ProductTimeProfile, dW as ProductType, dX as ProductVariant, dY as ProductVariantValue, dZ as PropertyFacet, d_ as PropertySource, d$ as PurchaseDisposition, e0 as PurchaseIntentActionResponse, e1 as PurchaseIntentCustomerInput, e2 as PurchaseIntentLineConfiguration, e3 as PurchaseIntentLineInput, e4 as PurchaseIntentLinePricingView, e5 as PurchaseIntentLineView, e6 as PurchaseIntentMobileMoneyNetwork, e7 as PurchaseIntentResolution, e8 as PurchaseIntentReviewResponse, e9 as PurchaseIntentSimpleLineConfiguration, ea as PurchaseIntentSourceInput, eb as PurchaseIntentStatus, ec as PurchaseIntentTenderPreference, ed as PurchaseIntentTerminalResponse, ee as PurchaseIntentView, ef as PurchasePolicyContext, eg as PurchaseSurface, eh as PurchasingPrincipal, ei as QuantityPricingTier, ej as RENDER_HINT, ek as RefreshCheckoutTermsRequest, el as RelatedProductView, em as RequestOtpInput, en as RequestOtpResult, eo as RevokeAllSessionsResult, ep as RevokeSessionResult, eq as SOURCE_REFUSAL, er as SaleCapInfo, S as SaleInfo, es as SalesChannel, et as SchedulingMode, eu as SelectedAddOnOption, ev as SellableKind, ew as SellableRef, ex as SemanticKind, ey as SignatureValue, ez as SourceRefusal, eA as SubmitAuthorizationInput, eB as SubmitPurchaseIntentActionRequest, eC as Subscription, eD as SubscriptionInvoice, eE as SubscriptionItem, eF as SubscriptionStatus, eG as SubscriptionWithDetails, eH as Tag, eI as TagsResponse, eJ as TaxPathComponent, eK as TaxonomyAttributeTemplate, eL as TaxonomyWithChildren, eM as UICart, eN as UICartBusiness, eO as UICartCustomer, eP as UICartLocation, eQ as UICartPricing, eR as UnavailableLine, U as UpcomingSale, eS as UpdateAddressInput, eT as UpdateCartItemInput, eU as VariantAxis, eV as VariantAxisSelection, eW as VariantAxisValue, eX as VariantAxisValueView, eY as VariantAxisView, eZ as VariantAxisWithValues, e_ as VariantDetails, e$ as VariantDetailsDTO, f0 as VariantDisplayAttribute, f1 as VariantLocationAvailability, f2 as VariantStrategy, f3 as VariantView, f4 as VerifyOtpInput, f5 as ZERO, f6 as currencyCode, f7 as enrichError, f8 as getErrorHint, f9 as isCimplifyError, fa as isIdempotencyMismatchError, fb as isQuoteConflictRequiringConsent, fc as isQuoteError, fd as isRetryableError, fe as isSupportedCurrency, ff as money, fg as moneyFromNumber } from './elements-Bty6Qs_N.js'; export { C as CURRENCY_SYMBOLS, a as CanonicalMobileMoneyProvider, M as MOBILE_MONEY_PROVIDERS, P as PAYMENT_TERMINAL_FAILURE_STATUSES, c as canonicalMobileMoneyProvider, b as categorizePaymentError, d as detectMobileMoneyProvider, f as formatMoney, e as formatNumberCompact, g as formatPrice, h as formatPriceAdjustment, i as formatPriceCompact, j as formatPriceRange, k as formatPriceWithTax, l as formatProductPrice, m as getBasePrice, n as getCurrencySymbol, o as getDiscountPercentage, p as getDisplayPrice, q as getMarkupPercentage, r as getPriceRange, s as getProductCurrency, t as getTaxAmount, u as getUnitPriceAtQuantity, v as hasTaxInfo, w as isOnSale, x as isPaymentStatusFailure, y as isPaymentStatusRequiresAction, z as isPaymentStatusSuccess, A as isTaxInclusive, B as isValidPhoneForContext, D as normalizePaymentResponse, E as normalizePhoneToE164, F as normalizeStatusResponse, G as parsePrice, H as paymentAuthorizationUrl, I as purchaseIntentMobileMoneyNetwork, J as resolvePhoneCountryCode } from './index-B7oA_1XI.js'; export { A as AdConfig, a as AdContextValue, b as AdCreative, c as AdPosition, d as AdSlot, e as AdTheme, S as SignInOptions, g as getVariantDisplayName, s as startSignIn } from './sign-in-DQlIdqsi.js'; export { F as FormatCompactOptions, a as FormatPriceOptions, P as ProductWithPrice } from './price-C_vasx9A.js'; import 'libphonenumber-js'; interface PaystackPopupOptions { key: string; email: string; amount?: number; currency?: string; reference?: string; accessCode?: string; } interface PaystackPopupResult { success: boolean; reference?: string; error?: string; } type PaystackPopup = (options: PaystackPopupOptions, signal?: AbortSignal) => Promise; /** Built-in adapter for Paystack Inline. */ declare class PaystackAuthorizationAdapter implements PaymentAuthorizationAdapter { private readonly openPopup; readonly provider: "paystack"; constructor(openPopup?: PaystackPopup); authorize(context: PaymentAuthorizationContext): Promise; } declare const STRIPE_REDIRECT_MODE: "if_required"; declare const STRIPE_PAYMENT_ELEMENT_TYPE: "payment"; interface StripeErrorLike { type?: string; code?: string; message?: string; } interface StripePaymentIntentLike { id?: string; status?: string; } interface StripePaymentElementLike { mount(target: HTMLElement): void; destroy?: () => void; unmount?: () => void; on?: (event: string, handler: (event?: { error?: StripeErrorLike; }) => void) => void; } interface StripeElementsLike { create(type: typeof STRIPE_PAYMENT_ELEMENT_TYPE, options?: Record): StripePaymentElementLike; submit?: () => Promise<{ error?: StripeErrorLike; }>; } interface StripeLike { elements(options: { clientSecret: string; }): StripeElementsLike; confirmPayment(options: { elements: StripeElementsLike; confirmParams: { return_url: string; }; redirect: typeof STRIPE_REDIRECT_MODE; }): Promise<{ error?: StripeErrorLike; paymentIntent?: StripePaymentIntentLike; }>; } type StripeLoader = (publicKey: string, options?: { stripeAccount?: string; }) => Promise; /** * Stripe card adapter backed by the Payment Element. It reports only that the * provider interaction was submitted; PurchaseIntentResolver still polls Cimplify * before returning checkout success. */ declare class StripeAuthorizationAdapter implements PaymentAuthorizationAdapter { private readonly loadStripe; readonly provider: "stripe"; constructor(loadStripe?: StripeLoader); authorize(context: PaymentAuthorizationContext): Promise; } interface PurchaseIntentPaymentSelection { method_kind: CheckoutPaymentMethodKind; /** Select one exact server-issued option when the terms contain several. */ payment_option_id?: string; } /** * Select an eligible option without coupling a purchase intent to any UI's * legacy form shape. Ranking remains server-owned; callers only state tender * and, optionally, the exact saved instrument the shopper selected. */ declare function selectPurchaseIntentPaymentOption(terms: CheckoutTermsView, selection: PurchaseIntentPaymentSelection): PaymentOptionView | undefined; /** Freeze explicit consent to the exact terms and option rendered by the UI. */ declare function createPurchaseIntentConfirmation(terms: CheckoutTermsView, paymentOption: PaymentOptionView | null | undefined, idempotencyKey: string): ConfirmPurchaseIntentRequest; /** True when confirmation must name one server-issued collection option. */ declare function purchaseIntentRequiresPaymentOption(terms: CheckoutTermsView): boolean; /** * The server reprices a purchase whose terms merely ran out of time, and * reissues every payment option with a new id when it does. When nothing the * buyer agreed to has moved - no amount, no line, no destination, and the same * debit on the same tender - their earlier consent still covers the * replacement, and asking again is friction with no information in it. * * Returns the confirmation for the replacement, or null when anything changed * and the buyer has to look. */ declare function confirmationForUnchangedReplacement(response: Extract, selection: PurchaseIntentPaymentSelection | null, idempotencyKey: string): ConfirmPurchaseIntentRequest | null; interface GalleryImage { url: string; /** null = product-level image; otherwise the variant it belongs to. */ variantId: string | null; } type GalleryProduct = Pick; /** * The gallery to show for a product, optionally scoped to a selected variant. * * Resolution order (replace-on-select): * 1. Selected variant's own photos, if it has any. * 2. Product-level gallery (`images`, which already includes `image_url`). * 3. First variant with photos — covers the fashion case where the product * row has no images and every photo lives on a variant. * 4. The primary `image_url` alone. */ declare function resolveGallery(product: GalleryProduct, selectedVariantId?: string): string[]; /** * Every image across the product and all its variants, deduped by URL and * tagged with provenance. Use for a "view all photos" lightbox. */ declare function allGalleryImages(product: GalleryProduct): GalleryImage[]; /** Reads structured card references an AI reply may carry in `metadata.cards`. */ declare function chatMessageCards(message: { metadata: Record; }): ChatReplyCard[]; interface CustomerGroup { id: string; business_id: string; name: string; slug: string; description?: string; is_default: boolean; priority: number; } interface PriceListItem { price_list_id: string; product_id: string; variant_id?: string; price: string; min_quantity: number; max_quantity?: number; } interface QuantityBreak { price: string; min_quantity: number; max_quantity?: number; } interface ResolvedQuantityBreak { price: number; min_quantity: number; max_quantity?: number; } interface CustomerPricingInfo { group_name: string; group_id: string; items: QuantityBreak[]; } /** * Whether customer-facing totals must present the tax-inclusive amount as the * price. True for inclusive-arithmetic markets (Ghana VAT) and for markets * whose reviewed presentation policy is `gross_required` even though the tax * arithmetic itself is exclusive (Nigeria, Singapore, South Africa, UAE). */ declare function displaysGrossPrices(pricing: { tax_inclusive: boolean; price_display_mode?: TaxPriceDisplayMode | null; }): boolean; type BasisFields = Pick; /** Whether this service schedules whole stays (per-duration-unit billing * default, unit reservations) rather than intraday slots. The server-resolved * `scheduling_mode` wins; the duration-unit fallback mirrors the backend's * `DurationUnit::scheduling_mode`. */ declare function isMultiDayService(product: BasisFields): boolean; /** * What one unit of the display price buys — "night", "person", "week"… — * or null when the price is simply the price (flat services, plain * products, and intraday services that never declared a basis, which * billed per person all along and don't need a new label). */ declare function priceBasisLabel(product: BasisFields): string | null; /** * How many billing periods a stay spans, counted in the service's duration * unit — a faithful port of `LineConfiguration::service_periods`: whole UTC * days between the dates (min 1), weeks round up, months/years by calendar * with a partial period counting as one more. */ declare function stayPeriods(scheduledStart: string, scheduledEnd: string, durationUnit: DurationUnit | null | undefined): number; /** "3 nights", "2 weeks" — the stay's billing length, spelled out. */ declare function stayLength(scheduledStart: string, scheduledEnd: string, durationUnit: DurationUnit | null | undefined): string; /** * The factor the server multiplies a service's unit price by — a faithful * port of `LineConfiguration::billing_multiplier`: resolve the basis (an * undeclared basis defaults per the scheduling mode), then flat = 1, * per-person = party size, per-duration-unit = stay periods, all times units. * Returns null for non-services — their total is plain price × quantity. */ declare function serviceBillingMultiplier(product: BasisFields, selection: { quantity: number; units?: number; scheduledStart?: string | null; scheduledEnd?: string | null; }): number | null; interface FrontendContext { location_id?: string; } interface QueryRequest { query: string; variables?: Record; cache_hint?: string; context?: FrontendContext; } interface MutationRequest { method: string; args: unknown[]; context?: FrontendContext; } interface ResponseMetadata { execution_time_ms: number; cache_hit: boolean; } interface ApiResponse { success: boolean; data?: T; error?: ApiError; metadata?: ResponseMetadata; } interface SilentSignInOptions { clientId: string; redirectUri: string; callbackUri?: string; sessionUri?: string; scope?: string; /** OIDC issuer; the authorize host is resolved from discovery. Defaults to https://api.cimplify.io. */ issuer?: string; /** @deprecated Pass `issuer`. If set, used directly as the authorize host. */ authUrl?: string; timeoutMs?: number; } interface SilentSignInResult { ok: boolean; reason?: "already_signed_in" | "login_required" | "callback_failed" | "timeout" | "state_mismatch" | "exception"; } declare function signInSilent(opts: SilentSignInOptions): Promise; declare const DEFAULT_CDN_BASE_URL = "https://storefrontassetscdn.cimplify.io"; declare const CIMPLIFY_CDN_HOSTS: readonly ["storefrontassetscdn.cimplify.io", "cdn.cimplify.io", "static-tmp.cimplify.io"]; interface AssetTransform { w?: number; h?: number; quality?: number; format?: "auto" | "webp" | "avif" | "jpeg"; } interface AssetUrlOptions extends AssetTransform { base?: string; } declare function assetUrl(path: string, opts?: AssetUrlOptions): string; declare function isCimplifyAsset(src: string, base?: string): boolean; export { ApiError, type ApiResponse, type AssetTransform, type AssetUrlOptions, CIMPLIFY_CDN_HOSTS, ChatReplyCard, CheckoutPaymentMethodKind, CheckoutTermsView, ConfirmPurchaseIntentRequest, ConfirmPurchaseIntentResponse, type CustomerGroup, type CustomerPricingInfo, DEFAULT_CDN_BASE_URL, DurationUnit, type FrontendContext, type GalleryImage, type MutationRequest, PURCHASE_INTENT_CONFIRM_STATUS, PaymentAuthorizationAdapter, PaymentAuthorizationContext, PaymentAuthorizationOutcome, PaymentOptionView, PaystackAuthorizationAdapter, type PaystackPopup, type PaystackPopupOptions, type PaystackPopupResult, type PriceListItem, Product, ProductWithDetails, type PurchaseIntentPaymentSelection, type QuantityBreak, type QueryRequest, type ResolvedQuantityBreak, type ResponseMetadata, type SilentSignInOptions, type SilentSignInResult, StripeAuthorizationAdapter, type StripeLike, type StripeLoader, TaxPriceDisplayMode, allGalleryImages, assetUrl, chatMessageCards, confirmationForUnchangedReplacement, createPurchaseIntentConfirmation, displaysGrossPrices, isCimplifyAsset, isMultiDayService, priceBasisLabel, purchaseIntentRequiresPaymentOption, resolveGallery, selectPurchaseIntentPaymentOption, serviceBillingMultiplier, signInSilent, stayLength, stayPeriods };