using System;
using System.Collections.Generic;
namespace UnityEngine.Purchasing.Extension
{
///
/// Configures Unity Purchasing with one or more
/// store implementations.
///
public interface IPurchasingBinder
{
///
/// Informs Unity Purchasing that a store implementation exists,
/// specifying its name.
///
/// Modules can pass null IStore instances when running on platforms
/// they do not support.
///
/// The name of the store
/// The instance of the store
void RegisterStore(string name, IStore store);
///
/// Informs Unity Purchasing that a store extension is available.
///
/// Implementation of IStoreExtension.
/// The instance of the store extension.
void RegisterExtension(T instance) where T : IStoreExtension;
///
/// Informs Unity Purchasing that extended Configuration is available.
///
/// Implementation of IStoreConfiguration.
/// The instance of the store configuration.
void RegisterConfiguration(T instance) where T : IStoreConfiguration;
///
/// Informs Unity Purchasing about a catalog provider which might replace or add products at runtime.
///
/// The provider of the catalog containing the products
void SetCatalogProvider(ICatalogProvider provider);
///
/// Informs Unity Purchasing about a catalog provider function, which might replace or add products at runtime.
/// This is an alternative to the SetCatalogProvider API for setting a catalog provider that does not implement
/// the ICatalogProvider interface.
///
/// The action that executes the addition of modificiation of products
void SetCatalogProviderFunction(Action>> func);
}
}