import Addon from './addon'; import Charge from './addon'; import Item, {ItemType} from './item'; import {Layout} from '../constants/enums'; export default class Product { planId: string; planQuantity: number; planQuantityInDecimal: string; addons: Array; coupons: Array; charges: Array; items: Array; isItemsModel: boolean; isOneTimeCheckout: boolean; layout: Layout; data: {}; constructor(planId: string, planQuantity?: number, isItemsModel?: boolean); setIsItemsModel(isItemsModel: boolean): void; setLayout(layout: Layout): void; setPlanQuantity(planQuantity?: number): this; setPlanQuantityInDecimal(planQuantityInDecimal: string): this; setAddons(addons: Array): this; setCharges(charges: Array): this; incrementPlanQuantity(): Product; decrementPlanQuantity(): Product; addAddon(addon: Addon | string): Product; removeAddon(addon: Addon | string): Product; addCharge(charge: Charge | string): Product; removeCharge(charge: Charge | string): Product; incrementChargeQty(id: string): Product; decrementChargeQty(id: string): Product; addCoupon(coupon: string): Product; setCustomData(data: {}): Product; removeCoupon(coupon?: string): this; incrementAddonQty(id: string): Product; decrementAddonQty(id: string): Product; fillAddons(addonAttributes: {}): void; getItem(itemPriceId: string): Item; removeItem(itemPriceId: string): void; createItem(itemPriceId: string, itemQuantity?: number, itemType?: ItemType, quantityInDecimal?: string): Item; setItems(items: Array): void; addItem(item: Item): void; fillSubscriptionCustomFields(subscriptionAttrs: {}): void; fillItems(subscriptionItems: {}): void; hasItemAttributes(element: HTMLElement): boolean; createProductFromElement(element: HTMLElement): Product; getLayout(): Layout | undefined; }