using WatchIt.Common.Model.Accounts; namespace WatchIt.Website.Services.Client.Accounts; public interface IAccountsClientService { Task Register(RegisterRequest data, Action? createdAction = null, Action>? badRequestAction = null); Task Authenticate(AuthenticateRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null); Task AuthenticateRefresh(Action? successAction = null, Action? unauthorizedAction = null, Action? forbiddenAction = null); Task Logout(Action? successAction = null); Task GetAccountProfilePicture(long id, Action? successAction = null, Action>? badRequestAction = null, Action? notFoundAction = null); Task GetAccountInfoById(long id, Action? successAction = null, Action? notFoundAction = null); Task GetAccountInfo(Action? successAction = null, Action? unauthorizedAction = null, Action? notFoundAction = null); Task PutAccountInfo(AccountRequest data, Action? successAction = null, Action>? badRequestAction = null, Action? unauthorizedAction = null, Action? notFoundAction = null); }