using Bit.Core.Entities; using Bit.Core.Entities.Provider; using Bit.Core.Models.Business; using Bit.Core.Models.Business.Provider; namespace Bit.Core.Services; public interface IProviderService { Task CompleteSetupAsync(Provider provider, Guid ownerUserId, string token, string key); Task UpdateAsync(Provider provider, bool updateBilling = false); Task> InviteUserAsync(ProviderUserInvite invite); Task>> ResendInvitesAsync(ProviderUserInvite invite); 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, string key); Task AddOrganizationsToReseller(Guid providerId, IEnumerable organizationIds); Task CreateOrganizationAsync(Guid providerId, OrganizationSignup organizationSignup, string clientOwnerEmail, User user); Task RemoveOrganizationAsync(Guid providerId, Guid providerOrganizationId, Guid removingUserId); Task LogProviderAccessToOrganizationAsync(Guid organizationId); Task ResendProviderSetupInviteEmailAsync(Guid providerId, Guid ownerId); Task SendProviderSetupInviteEmailAsync(Provider provider, string ownerEmail); }