import React from "react"; import { AnalyticsEventParams } from "../Bundle"; export type Product = { id: number; title: string; handle: string; description: string | null; published_at: string; created_at: string; vendor: string; type: string; tags: string[]; price: number; price_min: number; price_max: number; available: boolean; price_varies: boolean; compare_at_price: number | null; compare_at_price_min: number; compare_at_price_max: number; compare_at_price_varies: boolean; metafields?: { custom: any; judgeme: any; yourtoken_bundles_app: { categories?: string[]; }; }; variants: Array<{ id: number; title: string; option1: string | null; option2: string | null; option3: string | null; sku: string; requires_shipping: boolean; taxable: boolean; featured_image: any | null; available: boolean; name: string; public_title: string; options: string[]; price: number; weight: number; compare_at_price: number | null; inventory_management: string; barcode: string; requires_selling_plan: boolean; selling_plan_allocations: any[]; quantity_rule: { min: number; max: number | null; increment: number; }; }>; images: string[]; image?: string; options?: string[]; }; type DiscountData = { type: "dummy_coupon" | "percentage_discount_coupon" | "amount_discount_coupon" | "fixed_price_collection"; tiers: { minimumQuantity: number; discountValue: number; }; } | null; export type BundleConfig = { id: string; type: string; config: { shop: string; collectionIds: string[]; type: "collection"; builderTiers: { type: "collectionTier"; collectionTier: { title: string; tier: number; maximumQuantity: number; collectionId: string; handle: string; products: Product[]; discountData: DiscountData; }[]; }; splitVariants?: boolean; form?: { title?: string; sections?: { title: string; type: "text" | "image"; fields: { title: string; }[]; }[]; }; }; customizations: { borderRadius: string; atcBg: string; atcText: string; productImageRatio: string; bundleBg: string; bundleText: string; bundleBorder: string; btnPrimaryBg: string; btnPrimaryText: string; productCardBorder: string; productCardBg: string; productCardShadow: string; hideSelectedProducts: boolean; allowMultipleQty: boolean; hideOutOfStockProducts: boolean; bundleRedirection: "cart-drawer" | "checkout"; checkoutPartner: "shopify" | "razorpay" | "shiprocket" | "gokwik" | "breeze" | "zecpay" | "shopflo"; showTierSteps: boolean; headerImage: string; stickyBarWidth: "compact" | "full-width"; productCardCategoryVisibility?: boolean; enableProductCategories?: boolean; categoryFilterOnPage?: "tabs" | "box"; enableSearch?: boolean; enableSort?: boolean; }; }; interface CollectionBundleProps { config: BundleConfig; addCustomBundleToCart: (items: any) => void; bundleAddToCartLoading: boolean; dispatchAnalyticsEvent?: (params: AnalyticsEventParams) => void; } declare const CollectionBundle: ({ config, bundleAddToCartLoading, addCustomBundleToCart, dispatchAnalyticsEvent, }: CollectionBundleProps) => React.JSX.Element; export default CollectionBundle;