import { AbstractRestfulClient, Parameters } from '../abstractRestfulClient'; import { GetResult } from '../getResult'; import { Item, ItemList } from './entities'; import { GetPromotionCartListResult } from './entities/promotionList'; import { GetPrerequisitesListResult } from './entities/prerequisiteList'; export declare enum ItemRequestFields { ADDITIONAL_DATA = "additionalData", BASE_PRICE_BANDS = "basePriceBands", BUNDLE_ARROWSPHERE_SKU = "bundleArrowSphereSku", COTERM_PRICES = "cotermPrices", COTERM_PRICES_WITHOUT_PROMOTION = "cotermPricesWithoutPromotion", CURRENCY = "currency", IS_ADDON = "isAddon", IS_TRIAL = "isTrial", ITEM_ID = "itemId", OFFER_NAME = "offerName", PRICE_BAND_ARROWSPHERE_SKU = "priceBandArrowsphereSku", PRICE_BAND_VENDOR_SKU = "pricebandVendorSku", PRICES = "prices", PRICES_WITHOUT_PROMOTION = "pricesWithoutPromotion", QUANTITY = "quantity", RULES = "rules", USERNAME = "userName" } export declare enum ItemAdditionalDataRequestFields { NAME = "name", VALUE = "value" } export declare type ItemAdditionalDataRequestType = { [ItemAdditionalDataRequestFields.NAME]: string; [ItemAdditionalDataRequestFields.VALUE]: string; }; /** * Deprecated type, kept for backward compatibility. Use ItemAddRequestType instead which has the same structure */ export declare type ItemRequestType = { [ItemRequestFields.OFFER_NAME]: string; [ItemRequestFields.PRICE_BAND_ARROWSPHERE_SKU]: string; [ItemRequestFields.PRICE_BAND_VENDOR_SKU]?: string; [ItemRequestFields.QUANTITY]: number; [ItemRequestFields.ADDITIONAL_DATA]?: ItemAdditionalDataRequestType[]; [ItemRequestFields.USERNAME]?: string; }; export declare type ItemBundleRequestType = { [ItemRequestFields.BUNDLE_ARROWSPHERE_SKU]: string; [ItemRequestFields.OFFER_NAME]: string; [ItemRequestFields.QUANTITY]?: 1; [ItemRequestFields.BASE_PRICE_BANDS]: ItemRequestType[]; [ItemRequestFields.ADDITIONAL_DATA]?: ItemAdditionalDataRequestType[]; }; export declare type ItemAddRequestType = ItemRequestType | ItemBundleRequestType; export declare type ChangeCustomerRequestType = { customerRef: string; }; export declare type ItemUpdateRequestType = { [ItemRequestFields.PRICE_BAND_ARROWSPHERE_SKU]: string; [ItemRequestFields.QUANTITY]: number; [ItemRequestFields.ADDITIONAL_DATA]?: ItemAdditionalDataRequestType[]; }; export declare class CartClient extends AbstractRestfulClient { protected basePath: string; addItem(postData: ItemAddRequestType, parameters?: Parameters): Promise>; changeCustomer(postData: ChangeCustomerRequestType, parameters?: Parameters): Promise>; checkPromotion(parameters?: Parameters): Promise>; checkPrerequisites(itemId: string, parameters?: Parameters): Promise>; updateItem(itemId: string, postData: ItemUpdateRequestType, parameters?: Parameters): Promise>; removeItem(itemId: string, parameters?: Parameters): Promise; removeItems(parameters?: Parameters): Promise; listItems(perPage?: number, page?: number, parameters?: Parameters): Promise>; }