//------------------------------------------------------------------------------
// <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 Ajuna.NetApi.Model.Types.Primitive;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_awesome_avatars.types.season;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_awesome_avatars.types.config;
   using Ajuna.NetApi.Model.Types.Base;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_awesome_avatars.types.avatar;
   using Bajun.Network.NET.NetApiExt.Generated.Model.sp_core.bounded.bounded_vec;
   using Bajun.Network.NET.NetApiExt.Generated.Model.pallet_ajuna_awesome_avatars.types.account;
   
   public interface IAwesomeAvatarsControllerClient
   {
      Task<AccountId32> GetOrganizer();
      Task<bool> SubscribeOrganizer();
      Task<AccountId32> GetTreasurer(U16 key);
      Task<bool> SubscribeTreasurer(U16 key);
      Task<U16> GetCurrentSeasonId();
      Task<bool> SubscribeCurrentSeasonId();
      Task<SeasonStatus> GetCurrentSeasonStatus();
      Task<bool> SubscribeCurrentSeasonStatus();
      Task<Season> GetSeasons(U16 key);
      Task<bool> SubscribeSeasons(U16 key);
      Task<U128> GetTreasury(U16 key);
      Task<bool> SubscribeTreasury(U16 key);
      Task<GlobalConfig> GetGlobalConfigs();
      Task<bool> SubscribeGlobalConfigs();
      Task<BaseTuple<AccountId32, Avatar>> GetAvatars(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
      Task<bool> SubscribeAvatars(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
      Task<BoundedVecT31> GetOwners(AccountId32 key);
      Task<bool> SubscribeOwners(AccountId32 key);
      Task<U128> GetLockedAvatars(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
      Task<bool> SubscribeLockedAvatars(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
      Task<AccountInfo> GetAccounts(AccountId32 key);
      Task<bool> SubscribeAccounts(AccountId32 key);
      Task<SeasonInfo> GetSeasonStats(BaseTuple<U16, AccountId32> key);
      Task<bool> SubscribeSeasonStats(BaseTuple<U16, AccountId32> key);
      Task<U128> GetTrade(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
      Task<bool> SubscribeTrade(Bajun.Network.NET.NetApiExt.Generated.Model.primitive_types.H256 key);
   }
}
