import 'package:auth/src/features/sign_up/domain/entities/sign_up_request_entity.dart';
import 'package:auth/src/features/sign_up/domain/entities/two_fa_secret_entity.dart';

abstract class AuthRemoteDatasource {
  Future<void> requestPhoneCode({required String phone});

  Future<void> verifyPhoneCode({required String phone, required String code});

  Future<String> login({required String email, required String password});

  Future<void> twoFALogin({required String token, required String code});
  Future<String> signUp({required SignUpRequestEntity request});

  Future<TwoFASecretEntity> generateTwoFASignUp({required String token});
  Future<void> verifyTwoFACodeSignUp({
    required String token,
    required String code,
  });
  Future<String> requestPasswordReset({String? phone, String? email});

  Future<void> recoverPassword({required newPassword, required token});
}
