using OF_DL.Models;
using UserEntities = OF_DL.Models.Entities.Users;
namespace OF_DL.Services;
public interface IAuthService
{
///
/// Gets or sets the current authentication state.
///
Auth? CurrentAuth { get; set; }
///
/// Loads authentication data from the disk.
///
Task LoadFromFileAsync(string filePath = "auth.json");
///
/// Launches a browser session and extracts auth data after login.
///
Task LoadFromBrowserAsync();
///
/// Persists the current auth data to disk.
///
Task SaveToFileAsync(string filePath = "auth.json");
///
/// Cleans up the cookie string to only contain auth_id and sess cookies.
///
void ValidateCookieString();
///
/// Validates auth by calling the API and returns the user info if valid.
///
Task ValidateAuthAsync();
///
/// Logs out by deleting chrome-data and auth.json.
///
void Logout();
}