using System.Threading.Tasks; using Bit.Core.Models.Table; using System.Collections.Generic; using System; using Bit.Core.Models.Business; using Bit.Core.Models.Business.Provider; using Bit.Core.Models.Table.Provider; namespace Bit.Core.Services { public interface IProviderService { Task CreateAsync(string ownerEmail); Task CompleteSetupAsync(Provider provider, Guid ownerUserId, string token, string key); Task UpdateAsync(Provider provider, bool updateBilling = false); Task> InviteUserAsync(Guid providerId, Guid invitingUserId, ProviderUserInvite providerUserInvite); Task>> ResendInvitesAsync(Guid providerId, Guid invitingUserId, IEnumerable providerUsersId); Task AcceptUserAsync(Guid providerUserId, User user, string token); Task>> ConfirmUsersAsync(Guid providerId, Dictionary keys, Guid confirmingUserId); Task SaveUserAsync(ProviderUser user, Guid savingUserId); Task>> DeleteUsersAsync(Guid providerId, IEnumerable providerUserIds, Guid deletingUserId); Task AddOrganization(Guid providerId, Guid organizationId, Guid addingUserId, string key); Task CreateOrganizationAsync(Guid providerId, OrganizationSignup organizationSignup, User user); Task RemoveOrganization(Guid providerOrganizationId, Guid removingUserId); } }