using Bit.Core.AdminConsole.Entities.Provider; using Bit.Core.AdminConsole.Models.Business.Provider; using Bit.Core.Entities; using Bit.Core.Models.Business; namespace Bit.Core.AdminConsole.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 LogProviderAccessToOrganizationAsync(Guid organizationId); Task ResendProviderSetupInviteEmailAsync(Guid providerId, Guid ownerId); Task SendProviderSetupInviteEmailAsync(Provider provider, string ownerEmail); Task InitiateDeleteAsync(Provider provider, string providerAdminEmail); Task DeleteAsync(Provider provider, string token); Task DeleteAsync(Provider provider); }