import type { Cart, CartItem, PreorderAttributes, QuantityUpdate } from "./cart"; export interface ShopifyAJAXCartItem extends CartItem { variantId: string | null; quantity: number; properties?: Record; } export declare class ShopifyAJAXCart implements Cart { hasPreorderAttributes(item: ShopifyAJAXCartItem): boolean; addPreorderAttributes(item: ShopifyAJAXCartItem, attrs: PreorderAttributes): { id: string; variantId: string | null; quantity: number; properties: { __releaseId: string; "Purple Dot Pre-order": string; }; } & { attributes: { key: string; value: string; }[]; }; removePreorderAttributes(item: ShopifyAJAXCartItem): { id: string; variantId: string | null; quantity: number; properties: { [k: string]: string; }; } & { attributes: { key: string; value: string; }[]; }; fetchItems(): Promise; decrementQuantity(id: string): Promise; updateQuantities(updates: QuantityUpdate[], _cartId?: string | null): Promise; clear(): Promise; navigateToCheckout(): Promise; getCartId(): Promise; getCartType(): string; } export declare function updatePreorderAttributes(item: ShopifyAJAXCartItem): Promise; export declare function addAttributes; }>(x: T): T & { attributes: { key: string; value: string; }[]; };