﻿namespace Stove.StoveSDK
{
    using System;
    using System.Collections.Generic;

    public interface IIAP
    {
        void SetCustomBillingGUID(string guid);

        void Initialize(Action<Result> action);

        void FetchProducts(Action<Result, List<IAPProduct>> action);

        void StartPurchase(IAPProduct product, Action<Result> action);

        void StartPurchase(IAPProduct product, string serviceOrderId, IAPOptional optional, Action<Result> action);

        void SetListener(Action<Result, IAPProduct, IAPPurchaseDetail> action);

        bool Flush();

        void Consume(IAPProduct product, Action<Result> action);

        void FetchVoidedPurchases(Action<Result, List<Dictionary<string, object>>> action);

        void HandleVoidedPurchases(Action<Result> action);
    }
}

