using System.Security.Claims; using SeaHaven.Services.DTOs; namespace SeaHaven.Services.Interfaces; public interface ITeamMemberInviteService { /// Persists a new invite for a pending member and returns its raw token. Task CreateAsync(string userId, CancellationToken cancellationToken); /// Emails the invite link. Returns false when the email could not be handed off. Task SendAsync( IssuedTeamMemberInvite invite, string email, string name, CancellationToken cancellationToken); /// Admin-only: revokes a pending member's open invites and emails a new one. Task ResendAsync( string userId, ClaimsPrincipal caller, CancellationToken cancellationToken); }