//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Bajun.Network.NET.RestClient.Generated.Interfaces
{
   using System;
   using System.Threading.Tasks;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.crypto;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_nft_staking.pallet;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_nft_staking.contracts;
   using Ajuna.NetApi.Model.Types.Primitive;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.bounded.bounded_vec;
   
   public interface INftStakeControllerClient
   {
      Task<AccountId32> GetOrganizer();
      Task<bool> SubscribeOrganizer();
      Task<EnumPalletLockedState> GetLockedState();
      Task<bool> SubscribeLockedState();
      Task<StakingContract> GetActiveContracts(U128 key);
      Task<bool> SubscribeActiveContracts(U128 key);
      Task<AccountId32> GetContractOwners(U128 key);
      Task<bool> SubscribeContractOwners(U128 key);
      Task<U32> GetContractDurations(U128 key);
      Task<bool> SubscribeContractDurations(U128 key);
      Task<BoundedVecT12> GetContractStakedAssets(U128 key);
      Task<bool> SubscribeContractStakedAssets(U128 key);
      Task<AccountId32> GetTreasuryAccount();
      Task<bool> SubscribeTreasuryAccount();
      Task<U32> GetContractCollectionId();
      Task<bool> SubscribeContractCollectionId();
      Task<U128> GetNextContractId();
      Task<bool> SubscribeNextContractId();
   }
}
