export type ShipDates = { earliest: Date; latest: Date; }; export type PreorderAttributes = { releaseId: string; displayShipDates: string; }; export interface CartItem { id: string; variantId: string | null; quantity: number; attributes: { key: string; value: string; }[]; } export type QuantityUpdate = { id: string; quantity: number; }; export interface Cart { hasPreorderAttributes: (item: T) => boolean; addPreorderAttributes: (item: T, attrs: PreorderAttributes) => T; removePreorderAttributes: (item: T) => T; fetchItems: (cartId?: string | null) => Promise[]>; getCartId: () => Promise; getCartType: () => string; decrementQuantity: (id: string, cartId?: string | null) => Promise; updateQuantities: (updates: QuantityUpdate[], cartId?: string | null) => Promise; clear: (cartId?: string | null) => Promise; navigateToCheckout: (cartId?: string | null) => Promise; } export declare function cartHasPreorderItem(cartItems?: CartItem[]): Promise; export declare function getCartAdapter(): Cart; export declare function purpleDotAttributes(variant: { isPreorder: boolean; releaseId?: string | null; sellingPlanId?: string | null; compatibleCheckouts?: string[]; estimatedShipDates?: string | null; }): { key: string; value: string; }[];