import { CartItem, CartState } from '@debales/shared'; import { EcommercePlatform, Product } from '.'; export interface CartPlatformAdapter { readonly platform: EcommercePlatform; isSupported(): boolean; fetchCart(): Promise>; addToCart(variantId: string, quantity?: number, properties?: Record): Promise>; removeFromCart(itemId: number): Promise>; updateQuantity(cartItem: CartItem): Promise>; clearCart(): Promise>; generateCartUrl(domain: string): string; generateProductUrl(domain: string, product: Product): string; addCartAttributes(attributes?: Record): Promise>; } export type CartOperationResult = { success: true; data: T; message?: string; } | { success: false; error: string; }; export interface CartContextValue { isLoading: boolean; error: string | null; cart: CartState | null; showCartSummery: boolean; setShowCartSummery: (show: boolean) => void; fetchCart: () => Promise; addToCart: (variantId: string, quantity?: number, properties?: Record) => Promise>; removeFromCart: (itemId: number) => Promise>; updateQuantity: (cartItem: CartItem) => Promise>; clearCart: () => Promise>; generateCartUrl: (domain: string) => string; generateProductUrl: (domain: string, product: Product) => string; addCartAttributes: (attributes?: Record) => Promise>; }