Concrete class prototype

This commit is contained in:
RogueException
2016-09-22 21:15:37 -03:00
parent ab42129eb9
commit 6319933ed0
394 changed files with 3648 additions and 3224 deletions

View File

@@ -0,0 +1,41 @@
using Discord.API;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
namespace Discord
{
//TODO: Add docstrings
//TODO: Docstrings should explain when REST requests are sent and how many
public interface IDiscordClient : IDisposable
{
ConnectionState ConnectionState { get; }
DiscordRestApiClient ApiClient { get; }
ISelfUser CurrentUser { get; }
Task ConnectAsync();
Task DisconnectAsync();
Task<IApplication> GetApplicationInfoAsync();
Task<IChannel> GetChannelAsync(ulong id);
Task<IReadOnlyCollection<IPrivateChannel>> GetPrivateChannelsAsync();
Task<IReadOnlyCollection<IConnection>> GetConnectionsAsync();
Task<IGuild> GetGuildAsync(ulong id);
Task<IReadOnlyCollection<IGuild>> GetGuildsAsync();
Task<IReadOnlyCollection<IUserGuild>> GetGuildSummariesAsync();
Task<IGuild> CreateGuildAsync(string name, IVoiceRegion region, Stream jpegIcon = null);
Task<IInvite> GetInviteAsync(string inviteId);
Task<IUser> GetUserAsync(ulong id);
Task<IUser> GetUserAsync(string username, string discriminator);
Task<IReadOnlyCollection<IUser>> QueryUsersAsync(string query, int limit);
Task<IReadOnlyCollection<IVoiceRegion>> GetVoiceRegionsAsync();
Task<IVoiceRegion> GetVoiceRegionAsync(string id);
}
}