using Myriad.Types; namespace Myriad.Cache; public interface IDiscordCache { public ValueTask SaveGuild(Guild guild); public ValueTask SaveChannel(Channel channel); public ValueTask SaveUser(User user); public ValueTask SaveSelfMember(ulong guildId, GuildMemberPartial member); public ValueTask SaveRole(ulong guildId, Role role); public ValueTask SaveDmChannelStub(ulong channelId); public ValueTask RemoveGuild(ulong guildId); public ValueTask RemoveChannel(ulong channelId); public ValueTask RemoveUser(ulong userId); public ValueTask RemoveRole(ulong guildId, ulong roleId); internal ulong GetOwnUser(); public Task<Guild?> TryGetGuild(ulong guildId); public Task<Channel?> TryGetChannel(ulong channelId); public Task<User?> TryGetUser(ulong userId); public Task<GuildMemberPartial?> TryGetSelfMember(ulong guildId); public Task<Role?> TryGetRole(ulong roleId); public IAsyncEnumerable<Guild> GetAllGuilds(); public Task<IEnumerable<Channel>> GetGuildChannels(ulong guildId); }