/** * @rajeev02/app-shell — Cart & Checkout * Cart management, address, coupons, order tracking */ export interface CartItem { id: string; productId: string; name: string; imageUrl?: string; price: number; quantity: number; maxQuantity?: number; variant?: string; metadata?: Record; } export interface CartSummary { items: CartItem[]; subtotal: number; discount: number; tax: number; deliveryFee: number; total: number; couponCode?: string; itemCount: number; } export interface Address { id: string; label?: string; fullName: string; phone: string; line1: string; line2?: string; city: string; state: string; pincode: string; isDefault: boolean; latitude?: number; longitude?: number; } export type OrderStatus = "created" | "confirmed" | "processing" | "shipped" | "out_for_delivery" | "delivered" | "cancelled" | "returned" | "refunded"; export interface Order { id: string; items: CartItem[]; address: Address; status: OrderStatus; paymentMethod: string; paymentStatus: "pending" | "paid" | "failed" | "refunded"; subtotal: number; discount: number; tax: number; deliveryFee: number; total: number; couponCode?: string; trackingId?: string; createdAt: number; updatedAt: number; estimatedDelivery?: string; } /** * Cart Manager */ export declare class CartManager { private items; private couponCode; private couponDiscount; private taxRate; private deliveryFee; private listeners; /** Add item to cart */ add(item: Omit, quantity?: number): void; /** Update quantity */ updateQuantity(itemId: string, quantity: number): void; /** Remove item */ remove(itemId: string): void; /** Clear cart */ clear(): void; /** Apply coupon */ applyCoupon(code: string, discountAmount: number): void; /** Remove coupon */ removeCoupon(): void; /** Set delivery fee */ setDeliveryFee(fee: number): void; /** Get cart summary */ getSummary(): CartSummary; /** Check if cart is empty */ isEmpty(): boolean; /** Get item count */ getItemCount(): number; /** Subscribe to cart changes */ onChange(listener: () => void): () => void; /** Export cart for persistence */ export(): Record; /** Import cart from persistence */ import(data: Record): void; private notify; } //# sourceMappingURL=index.d.ts.map