import { ProductType } from "./enums";
import { ProductOfferDetails } from "./ProductOfferDetails";
import { ProductInAppDetails } from "./ProductInAppDetails";
/**
 * This class contains all the information about the concrete Google product,
 * either subscription or in-app. In case of a subscription also determines concrete base plan.
 */
export declare class ProductStoreDetails {
    /**
     * Identifier of the base plan to which these details relate.
     * Null for in-app products.
     */
    basePlanId: string | null;
    /**
     * Identifier of the subscription or the in-app product.
     */
    productId: string;
    /**
     * Name of the subscription or the in-app product.
     */
    name: string;
    /**
     * Title of the subscription or the in-app product.
     * The title includes the name of the app.
     */
    title: string;
    /**
     * Description of the subscription or the in-app product.
     */
    description: string;
    /**
     * Offer details for the subscription.
     * Offer details contain all the available variations of purchase offers,
     * including both base plan and eligible base plan + offer combinations
     * from Google Play Console for current {@link basePlanId}.
     * Null for in-app products.
     */
    subscriptionOfferDetails: ProductOfferDetails[] | null;
    /**
     * The most profitable subscription offer for the client in our opinion from all the available offers.
     * We calculate the cheapest price for the client by comparing all the trial or intro phases
     * and the base plan.
     */
    defaultSubscriptionOfferDetails: ProductOfferDetails | null;
    /**
     * Subscription offer details containing only the base plan without any offer.
     */
    basePlanSubscriptionOfferDetails: ProductOfferDetails | null;
    /**
     * Offer details for the in-app product.
     * Null for subscriptions.
     */
    inAppOfferDetails: ProductInAppDetails | null;
    /**
     * True, if there is any eligible offer with a trial
     * for this subscription and base plan combination.
     * False otherwise or for an in-app product.
     */
    hasTrialOffer: boolean;
    /**
     * True, if there is any eligible offer with an intro price
     * for this subscription and base plan combination.
     * False otherwise or for an in-app product.
     */
    hasIntroOffer: boolean;
    /**
     * True, if there is any eligible offer with a trial or an intro price
     * for this subscription and base plan combination.
     * False otherwise or for an in-app product.
     */
    hasTrialOrIntroOffer: boolean;
    /**
     * The calculated type of the current product.
     */
    productType: ProductType;
    /**
     * True, if the product type is InApp.
     */
    isInApp: boolean;
    /**
     * True, if the product type is Subscription.
     */
    isSubscription: boolean;
    /**
     * True, if the subscription product is prepaid, which means that users pay in advance -
     * they will need to make a new payment to extend their plan.
     */
    isPrepaid: boolean;
    /**
     * True, if the subscription product is installment, which means that users commit
     * to pay for a specified amount of periods every month.
     */
    isInstallment: boolean;
    constructor(basePlanId: string | null, productId: string, name: string, title: string, description: string, subscriptionOfferDetails: ProductOfferDetails[] | null, defaultSubscriptionOfferDetails: ProductOfferDetails | null, basePlanSubscriptionOfferDetails: ProductOfferDetails | null, inAppOfferDetails: ProductInAppDetails | null, hasTrialOffer: boolean, hasIntroOffer: boolean, hasTrialOrIntroOffer: boolean, productType: ProductType, isInApp: boolean, isSubscription: boolean, isPrepaid: boolean, isInstallment: boolean);
}
