import 'package:dartz/dartz.dart';

import '../../../../core/errors/failures.dart';
import '../entities/user_entity.dart';

/// Abstract repository interface for users
abstract class UsersRepository {
  /// Get all users (from local storage if available, otherwise from API)
  Future<Either<Failure, List<UserEntity>>> getUsers();

  /// Sync users from API and save to local storage
  Future<Either<Failure, List<UserEntity>>> syncUsers();

  /// Clear all users from local storage
  Future<Either<Failure, void>> clearUsers();
}
