UNPKG

react-native-qonversion

Version:

Qonversion provides full in-app purchases infrastructure, so you do not need to build your own server for receipt validation. Implement in-app subscriptions, validate user receipts, check subscription status, and provide access to your app features and co

95 lines (94 loc) 4.78 kB
import { ProductType, PurchaseUpdatePolicy } from "./enums"; import SKProduct from "./storeProducts/SKProduct"; import SkuDetails from "./storeProducts/SkuDetails"; import ProductStoreDetails from "./storeProducts/ProductStoreDetails"; import ProductOfferDetails from './storeProducts/ProductOfferDetails'; import PurchaseModel from './PurchaseModel'; import PurchaseUpdateModel from './PurchaseUpdateModel'; import SubscriptionPeriod from './SubscriptionPeriod'; declare class Product { qonversionID: string; storeID: string | null; /** * Identifier of the base plan for Google product. */ basePlanID: string | null; /** * Google Play Store details of this product. * Android only. Null for iOS, or if the product was not found. * Doesn't take into account {@link basePlanID}. * @deprecated Consider using {@link storeDetails} instead. */ skuDetails: SkuDetails | null; /** * Google Play Store details of this product. * Android only. Null for iOS, or if the product was not found. */ storeDetails: ProductStoreDetails | null; /** * App store details of this product. * iOS only. Null for Android, or if the product was not found. */ skProduct: SKProduct | null; offeringId?: string | null; /** * For Android - the subscription base plan duration. If the {@link basePlanID} is not specified, * the duration is calculated using the deprecated {@link skuDetails}. * For iOS - the duration of the {@link skProduct}. * Null, if it's not a subscription product or the product was not found in the store. */ subscriptionPeriod: SubscriptionPeriod | null; /** * The subscription trial duration of the default offer for Android or of the product for iOS. * See {@link ProductStoreDetails.defaultSubscriptionOfferDetails} for the information on how we * choose the default offer for Android. * Null, if it's not a subscription product or the product was not found the store. */ trialPeriod: SubscriptionPeriod | null; /** * The calculated type of this product based on the store information. * On Android uses deprecated {@link skuDetails} for the old subscription products * where {@link basePlanID} is not specified, and {@link storeDetails} for all the other products. * On iOS uses {@link skProduct} information. */ type: ProductType; /** * Formatted price of for this product, including the currency sign. */ prettyPrice: string | null; price?: number; currencyCode?: string; storeTitle?: string; storeDescription?: string; prettyIntroductoryPrice?: string; constructor(qonversionID: string, storeID: string, basePlanID: string | null, skuDetails: SkuDetails | null, storeDetails: ProductStoreDetails | null, skProduct: SKProduct | null, offeringId: string | null, subscriptionPeriod: SubscriptionPeriod | null, trialPeriod: SubscriptionPeriod | null, type: ProductType, prettyPrice: string | null, price: number | undefined, currencyCode: string | undefined, storeTitle: string | undefined, storeDescription: string | undefined, prettyIntroductoryPrice: string | undefined); /** * Converts this product to purchase model to pass to {@link Qonversion.purchase}. * @param offerId concrete Android offer identifier if necessary. * If the products' base plan id is specified, but offer id is not provided for * purchase, then default offer will be used. * Ignored if base plan id is not specified. * Ignored for iOS. * To know how we choose the default offer, see {@link ProductStoreDetails.defaultSubscriptionOfferDetails}. * @returns purchase model to pass to the purchase method. */ toPurchaseModel(offerId?: string | null): PurchaseModel; /** * Converts this product to purchase model to pass to {@link Qonversion.purchase}. * @param offer concrete Android offer which you'd like to purchase. * @return purchase model to pass to the purchase method. */ toPurchaseModelWithOffer(offer: ProductOfferDetails): PurchaseModel; /** * Android only. * * Converts this product to purchase update (upgrade/downgrade) model * to pass to {@link Qonversion.updatePurchase}. * @param oldProductId Qonversion product identifier from which the upgrade/downgrade * will be initialized. * @param updatePolicy purchase update policy. * @return purchase model to pass to the update purchase method. */ toPurchaseUpdateModel(oldProductId: string, updatePolicy?: PurchaseUpdatePolicy | null): PurchaseUpdateModel; } export default Product;