import 'package:dartz/dartz.dart'; import '../../../../core/errors/failures.dart'; import '../entities/auth_response.dart'; import '../entities/user.dart'; /// Abstract repository for authentication operations abstract class AuthRepository { /// Login user with email and password Future> login({ required String email, required String password, }); /// Register new user Future> register({ required String name, required String email, required String password, List roles = const ['user'], }); /// Get current user profile Future> getProfile(); /// Refresh access token Future> refreshToken(); /// Logout user (clear local token) Future> logout(); /// Check if user is authenticated Future isAuthenticated(); /// Get stored access token Future getAccessToken(); }