import 'package:social_app/features/auth/data/models/signup_request.dart';
import 'package:social_app/features/auth/data/models/login_request.dart';
import 'package:social_app/features/auth/data/models/auth_response.dart';

abstract class AuthRepository {
  Future<VerificationCreateResponse> createVerification(
    SignupStartRequest request,
  );
  Future<AuthResponse> verifyVerification(SignupVerifyRequest request);
  Future<void> resendVerification(SignupResendRequest request);
  Future<AuthResponse> createSession(LoginRequest request);
  Future<AuthResponse> refreshSession(String refreshToken);
  Future<void> deleteSession();
  Future<String?> getAccessToken();
  Future<String?> getRefreshToken();
  Future<bool> isAuthenticated();
  Future<void> requestPasswordReset(String email);
  Future<void> confirmPasswordReset({
    required String email,
    required String token,
    required String newPassword,
  });
}
