import React from "react"; import { type DrawerLayout } from "./CartDrawer"; import { FreebieRewardContext } from "../../utils/freebieUtils"; import { stickyCartCustomizationDataProps } from "./StickyCart"; import { CartOffersCarousalProps } from "./CartOffersCarousel"; import { freebieMilestoneProps } from "./NextFreebieRow"; import { GSTSectionCustomizationProps } from "./GSTSection"; import { BundlePayload } from "../BundleBlock/Bundle"; import { type FloatingCartDataProps } from "./FloatingCart"; import { trustedBadgeInterface } from "./CheckoutSection"; export interface Checkpoint { couponTemplateId: number; couponType: string; minimumOrderValue: number; name: string; quantityThreshold: number; isDummyCouponTemplate?: boolean; customerGetsProductIds?: { ids: string[]; }; discountValue?: number; _allVariantIds: string[]; maxFreebiesInTier?: number; freebieType?: 'free' | 'deal_amount' | 'no_discount' | 'percentage_off' | null; } export interface freebieClaimInterface { freebieSectionTitle: string; productClaimCtaButtonText: string; type: "section" | "overlay"; allowOverlayClose: boolean; freeLabelText?: string; } export type CartLevelDiscountApplication = { type: string; key: string; title: string; description: string | null; value: string; created_at: string; value_type: string; allocation_method: string; target_selection: string; target_type: string; total_allocated_amount: number; }; export type LoyaltyDiscount = { type: string; key: string; title: string; description: string | null; value: string; created_at: string; value_type: string; allocation_method: string; target_selection: string; target_type: string; total_allocated_amount: number; }; export interface RewardCoupon { couponTemplateId: number; name: string; couponType: string; discountPercentage: number | null; discountValue: number | null; minimumOrderValue: number | null; pointsRequired: number | null; allowedCollections?: { ids: string[]; }; resolvedCollectionNames?: string[]; isEligible?: boolean; applicableSubtotal?: number; estimatedSavings?: number; quantityThreshold?: number | null; customCartProgressBarCriteria?: string; } export interface CouponSelectionData { preCollectionBannerPrefixText: string; preCollectionBannerSuffixText: string; postCollectionBannerPrefixText: string; postCollectionBannerSuffixText: string; couponTextPrefix?: string; couponTextSuffix?: string; applyButtonText?: string; } export interface uploadImageAddonInterface { showUploadImageAddon: boolean; state: "optional" | "required"; showUI: "always" | "required_item_atc"; tagName: string; title: string; subtitle: string; uploadedText: string; } export interface CartProps { isOpen: boolean; setIsOpen: React.Dispatch>; backdrop?: boolean; backgroundColor: string; backgroundSubdued?: string; tertiaryColor?: string; tertiaryTextColor?: string; exploreCTAColor: string; emptyCartTitle: string; emptyCartDescription?: string; emptyCartButtons?: Array<{ title: string; link: string; }>; checkoutFontSize: number | string; cartTitle: string; cartData?: any; switchWidthVariant?: boolean; addCartItem?: (product: any, quantity?: number, triggeredFrom?: string, freebieReplace?: boolean, productHandle?: string) => Promise; removeCartItem: (lineItemKey: string, triggeredFrom?: string, ytRequest?: boolean) => Promise; handleIncrement: (lineItemKey: string | number, newQuantity: number, properties?: { [key: string]: string; }) => Promise; handleDecrement: (lineItemKey: string | number, newQuantity?: number) => Promise; bundleProducts?: any; showBundle?: boolean; isUserSignedIn?: boolean; loyaltyIcon?: string; discountAmountOff?: number; pointsToBeUsed?: number; rewardMultiplier?: number; redemptionMultiplier?: number; removeDiscount?: () => Promise; applyDiscount?: () => Promise; discountApplied?: boolean; joinNowFunction?: () => void; checkoutFunction: (templateId?: number) => Promise; guestLoyaltyPercentage?: number; showToggleButton?: boolean; isDev?: boolean; recProductsList?: any[]; showMultiStepProgressBar?: boolean; cartCheckpoints?: Checkpoint[]; showCartLevelAltPay?: boolean; redemptionRate: number; orderCreditType?: string; orderCreditValue?: number; exploreCtaRedirectLink?: string; discountAmountApplied?: number; minimumCartValue?: number; discountInCheckoutButton?: boolean | string; isStickyCheckout?: boolean; handleCheckpointCrossed?: (checkpoint: Checkpoint, cartAmount: number) => Promise; customCartProgressBarCriteria?: string; primaryTextColor?: string; secondaryTextColor?: string; themeColor?: string; themeTextColor?: string; checkoutButtonColor?: string; ctaButtonBackgroundColor?: string; ctaButtonTextColor?: string; showProductRecsOnMobile?: boolean; showProductRecsOnDesktop?: boolean; productRecsTitleText?: string; productRecsCtaButtonText?: string; showGSTOption?: boolean; gstNumber?: string; companyName?: string; applyGSTToCart?: (gstNumber: string, companyName: string) => Promise; showMOVForProgressTiers?: boolean; freeProduct?: any; showLoyaltyCta?: boolean; freeProductAdjustedCartTotal?: number; redemptionMinimumOrderValue?: number; redemptionMinimumOrderValueStatus?: boolean; signinCTAButtonVisible?: boolean; cartSigninCTAMainText?: string; showNoteOption?: boolean; note?: string; applyNoteToCart?: (note: string) => Promise; inlineCartOfferInfoText?: string; inlineCartOfferInfoRedirectLink?: string; cartOfferTermsAndConditionsText?: string; showEditOptionOnProducts?: boolean; getProductDetailsByVariantId?: (handle: string, variantId?: string) => Promise; onSetLoading?: (setLoadingFn: (isLoading: boolean, showLoader: boolean, showSkeletonLoader?: boolean, showLoyaltyCtaLoading?: boolean) => void) => void; showVariantSelectionDropdownInProductRecs?: boolean; originalCartSubtotal?: number; freebieProductsInCart?: any; currentTier?: number; showFreebieClaim?: boolean; addFreebieToCart?: (variantId: string, originalAllowedVariantIds?: string[], rewardContext?: FreebieRewardContext) => Promise; freebiesInCart?: string[]; effectiveQuantityForProgressBar?: number; productPercentageOffMapping: { [variantId: string]: number; }; removeFreebieFromCart?: (lineItemKey: string) => Promise; postalCodeList?: number[]; enableGeoLocationDeliveryRestriction?: boolean; applyPostalCodeAndDeliverySlotToCart?: (deliveryType: string, postalCode?: string, deliverySlot?: string) => Promise; showDeleteOnFreebies?: boolean; freebieCouponTemplates?: Checkpoint[]; freebieFlowCheckpoints?: Checkpoint[]; freebieClaimData?: freebieClaimInterface; showStickyAddToCart?: boolean; stickyCartLineItem?: any; stickyCartCustomizationData?: stickyCartCustomizationDataProps; stickyCartLineItemQuantity?: number; postalCodeBasedItemTrackingParameter?: "specific-tags" | "all-products"; enableSlotPicker?: boolean; deliveryHeaderTitle?: string; deliveryAvailableText?: string; deliveryNotAvailableText?: string; giftWrapSetupData?: any; giftWrapProductDetail?: any; progressBarFreeProductIconType?: "tshirt" | "gift" | "box" | "cup"; addToStickyCart?: (variantId: string, quantity: number) => Promise; enableCustomCartOnCartPage?: boolean; isCartPage?: boolean; productRecsCardLayout: "horizontal" | "vertical"; productRecsCardListVariant: "scroll" | "carousel" | "vertical"; showCartTimer?: boolean; showFreebieMilestone?: boolean; showFloatingCart?: boolean; floatingCartData?: FloatingCartDataProps; cartTimerInMinutes?: number; cartTimerCustomText?: string; imageAspectSelector?: "square" | "portrait"; cartComponentsCornerType?: "rounded" | "sharp"; cartComponentsCornerRadius?: number; cartOffersCarousalData?: CartOffersCarousalProps; freebieMilestoneData?: freebieMilestoneProps; cartOffersCarouselHeight?: number; stickyBarBuyNowFunction?: (variantId: string, quantity: number) => Promise; gstSectionCustomizationData?: GSTSectionCustomizationProps; noteSectionTitle?: string; checkoutSectionMessage?: string; checkoutSectionMessageRedirectLink?: string; checkoutSectionMessageDisplay?: "ribbon" | "tag" | "bookmark"; showVariantSelectionDropdownInProductClaim?: boolean; productClaimCtaButtonText?: string; loyaltyDiscount?: LoyaltyDiscount | undefined; coinName?: string; showDiscountOnMRP?: boolean; prefixMessageText?: string; suffixMessageText?: string; successMessageText?: string; toggleDecimal?: boolean; disableCheckoutButton: boolean; showEmptyCartRecommendations?: boolean; emptyProductRecsTitleText?: string; checkoutButtonBottomSpacing?: number; applyCouponCode?: (code: string) => Promise; showApplyCoupon?: boolean; enableConfetti?: boolean; showCheckoutButtonPaymentIcons?: boolean; showCouponOptions?: boolean; rewardCoupons?: RewardCoupon[]; couponSelectionData?: CouponSelectionData; comboBundleData?: BundlePayload; comboBundleAddToCartFunction?: (selectedItemsSubtotal: number, variantIds?: string[], finalBundlePrice?: number, variantIdPriceMap?: { variantId: string; price: number; }[]) => Promise; stealDealCheckpoints?: Checkpoint[]; stealDealProducts?: any[]; stealDealAddToCart?: (variantId: string, originalAllowedVariantIds?: string[], rewardContext?: FreebieRewardContext) => Promise; useCartShell?: boolean; showTrustedBadge?: boolean; trustedBadgeData?: trustedBadgeInterface; drawerLayoutData?: DrawerLayout; uploadImageAddonData?: uploadImageAddonInterface; } declare const _default: React.NamedExoticComponent; export default _default;