declare global { interface Window { kachingCartApi: { updateTieredPromotionsBar: () => void; }; upcartOpenOnAddToCartOverride?: boolean; upcartShouldOpenOnAddToCartBackgroundNetworkCall?: boolean; } } interface Cart { token?: string; note?: string; attributes?: Attributes; original_total_price?: number; total_price?: number; total_discount?: number; total_weight?: number; item_count?: number; items?: Item[]; requires_shipping?: boolean; currency?: string; items_subtotal_price?: number; cart_level_discount_applications?: any[]; discount_codes?: any[]; } interface Attributes { igId?: string; aimPK?: string; country?: string; fbp?: string; host?: string; locale?: string; sh?: string; sw?: string; ttp?: string; igTestGroups?: string; } interface Item { id?: number; properties?: Properties; quantity?: number; variant_id?: number; key?: string; title?: string; price?: number; original_price?: number; presentment_price?: number; discounted_price?: number; line_price?: number; original_line_price?: number; total_discount?: number; discounts?: { amount: number; title: string; }[]; sku?: string; grams?: number; vendor?: string; taxable?: boolean; product_id?: number; product_has_only_default_variant?: boolean; gift_card?: boolean; final_price?: number; final_line_price?: number; url?: string; featured_image?: FeaturedImage; image?: string; handle?: string; requires_shipping?: boolean; product_type?: string; product_title?: string; product_description?: string; variant_title?: string; variant_options?: string[]; options_with_values?: OptionsWithValue[]; line_level_discount_allocations?: any[]; line_level_total_discount?: number; quantity_rule?: QuantityRule; has_components?: boolean; selling_plan_allocation?: SellingPlanAllocation; } interface Properties { } interface FeaturedImage { aspect_ratio?: number; alt?: string; height?: number; url?: string; width?: number; } interface OptionsWithValue { name?: string; value?: string; } interface QuantityRule { min?: number; max?: any; increment?: number; } interface SellingPlanAllocation { price_adjustments?: PriceAdjustment[]; price?: number; compare_at_price?: number; per_delivery_price?: number; selling_plan?: SellingPlan; } interface PriceAdjustment { position?: number; price?: number; } interface SellingPlan { id?: number; name?: string; description?: string; options?: Option[]; recurring_deliveries?: boolean; fixed_selling_plan?: boolean; price_adjustments?: PriceAdjustment2[]; } interface Option { name?: string; position?: number; value?: string; } interface PriceAdjustment2 { order_count?: number; position?: number; value_type?: string; value?: number; } export type { Attributes, Cart, FeaturedImage, Item, Option, OptionsWithValue, PriceAdjustment, PriceAdjustment2, Properties, QuantityRule, SellingPlan, SellingPlanAllocation };