export interface AjaxConfig { storeDomain: string; fetch?: (input: string | URL | Request, init?: RequestInit) => Promise; responseInterceptor?: (response: Response, request: Request) => Promise | void; } export interface CartLineItem { id: number; properties: Record | null; quantity: number; variant_id: number; key: string; title: string; price: number; original_price: number; discounted_price: number; line_price: number; original_line_price: number; total_discount: number; discounts: any[]; sku: string; grams: number; vendor: string; taxable: boolean; product_id: number; gift_card: boolean; final_price: number; final_line_price: number; url: string; image: string; handle: string; requires_shipping: boolean; product_type: string; product_title: string; product_description: string; variant_title: string; variant_options: string[]; line_level_discount_allocations: any[]; } export interface Cart { token: string; note: string | null; attributes: Record; original_total_price: number; total_price: number; total_discount: number; total_weight: number; item_count: number; items: CartLineItem[]; requires_shipping: boolean; currency: string; items_subtotal_price: number; cart_level_discount_applications: any[]; } export interface AddToCartItem { id: string | number; quantity: number; } export interface AddToCartRequest { items: AddToCartItem[]; } export interface AddToCartResponse { items: CartLineItem[]; } export interface CartChangeItem { product_id: number; variant_id: number; id: string; image: string; price: string; presentment_price: number; quantity: number; title: string; product_title: string; variant_title: string; vendor: string; product_type: string; sku: string; url: string; untranslated_product_title: string; untranslated_variant_title: string; view_key: string; } export interface CartChangeResponse extends Cart { items_added: CartChangeItem[]; items_removed: CartChangeItem[]; discount_codes: any[]; } export interface CartError { message: string; status: string; description: string; } export declare class AjaxApiClient { private readonly config; private readonly cache; constructor(config: AjaxConfig); patchFetch(): void; private getFetchRequest; private getBaseUrl; fetch(input: string | URL | Request, init?: RequestInit): Promise; private request; fetchCart(): Promise; addToCart(request: AddToCartRequest): Promise; clearCache(): Promise; }