using System;
using System.Collections.Generic;
using UnityEngine.Purchasing.Security;
namespace UnityEngine.Purchasing
{
    /// 
    /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
    ///
    /// Access GooglePlay store specific functionality.
    /// 
    public class FakeGooglePlayStoreExtensions : IGooglePlayStoreExtensions
    {
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Upgrade or downgrade subscriptions, with proration mode `IMMEDIATE_WITHOUT_PRORATION` by default
        /// See more
        /// 
        /// current subscription
        /// new subscription to subscribe
        public void UpgradeDowngradeSubscription(string oldSku, string newSku) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Upgrade or downgrade subscriptions
        /// 
        /// current subscription
        /// new subscription to subscribe
        /// Specifies the mode of proration.
        /// See more
        /// 
        public void UpgradeDowngradeSubscription(string oldSku, string newSku, int desiredProrationMode) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Upgrade or downgrade subscriptions
        /// 
        /// current subscription
        /// new subscription to subscribe
        /// Specifies the mode of proration.
        /// See more
        /// 
        public void UpgradeDowngradeSubscription(string oldSku, string newSku, GooglePlayProrationMode desiredProrationMode) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Async call to the google store to `queryPurchases`
        /// using all the different support sku types.
        /// 
        /// Will be called as often as many purchases the queryPurchases finds. (the IStoreCallback will be called as well)
        [Obsolete("RestoreTransactions(Action callback) is deprecated, please use RestoreTransactions(Action callback) instead.")]
        public void RestoreTransactions(Action callback) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Async call to the google store to `queryPurchases`
        /// using all the different support sku types.
        /// 
        /// Will be called as often as many purchases the queryPurchases finds. (the IStoreCallback will be called as well)
        public void RestoreTransactions(Action callback) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Initiate a flow to confirm the change of price for an item subscribed by the user.
        /// 
        /// Product id
        /// Price changed event finished successfully
        public void ConfirmSubscriptionPriceChange(string productId, Action callback) { }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Determines if the purchase of a product in the Google Play Store is deferred based on its receipt. This indicates if there is an additional step to complete a transaction in between when a user initiates a purchase and when the payment method for the purchase is processed.
        /// Handling pending transactions
        /// 
        /// Product
        /// trueif the input contains a receipt for a deferred or a pending transaction for a Google Play billing purchase, and false otherwise.
        public bool IsPurchasedProductDeferred(Product product)
        {
            return false;
        }
        /// 
        /// THIS IS A FAKE, NO CODE WILL BE EXECUTED!
        ///
        /// Determines the purchase state of a product in the Google Play Store based on its receipt.
        /// 
        /// Product
        /// Returns the purchase state when successful, otherwise an exception is thrown.
        public GooglePurchaseState GetPurchaseState(Product product)
        {
            throw new NotImplementedException();
        }
    }
}