UNPKG

@betterstore/react

Version:

E-commerce for Developers

36 lines (35 loc) 1.47 kB
import { Product, LineItemCreate as SDKLineItemCreate } from "@betterstore/sdk"; type LineItemOptionalParams = { quantity?: number; variantOptions?: { name: string; value: string; }[]; metadata?: Record<string, any>; }; export interface CartLineItem extends Pick<SDKLineItemCreate, "metadata" | "quantity" | "variantOptions" | "productId" | "product"> { id: string; selectedVariant: Product["productVariants"][number] | null; } export interface Cart { lineItems: CartLineItem[]; addItem: (product: CartLineItem["product"] & { productVariants?: Product["productVariants"]; }, additionalParams?: LineItemOptionalParams) => void; removeItem: (id: string) => void; updateQuantity: (id: string, quantity: number) => void; getProductQuantity: (productId: string) => number; clearCart: () => void; } export declare const useCart: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<Cart>, "persist"> & { persist: { setOptions: (options: Partial<import("zustand/middleware").PersistOptions<Cart, Cart>>) => void; clearStorage: () => void; rehydrate: () => Promise<void> | void; hasHydrated: () => boolean; onHydrate: (fn: (state: Cart) => void) => () => void; onFinishHydration: (fn: (state: Cart) => void) => () => void; getOptions: () => Partial<import("zustand/middleware").PersistOptions<Cart, Cart>>; }; }>; export {};