using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace UnityEngine.Purchasing.Extension
{
///
/// Represents the public interface of the underlying store system such as Google Play,
/// or the Apple App store.
///
public interface IStore
{
///
/// Initialize the instance using the specified .
///
/// The callback interface for the store.
void Initialize(IStoreCallback callback);
///
/// Fetch the latest product metadata, including purchase receipts,
/// asynchronously with results returned via IStoreCallback.
///
/// The collection of products desired
void RetrieveProducts(ReadOnlyCollection products);
///
/// Handle a purchase request from a user.
/// Developer payload is provided for stores
/// that define such a concept (Google Play).
///
/// The product to be purchased.
/// The developer payload expected by the specific store implementation
void Purchase(ProductDefinition product, string developerPayload);
///
/// Called by Unity Purchasing when a transaction has been recorded.
/// Store systems should perform any housekeeping here,
/// such as closing transactions or consuming consumables.
///
/// The product purchased
/// The id of the transaction
void FinishTransaction(ProductDefinition product, string transactionId);
}
}