import 'dart:async';

enum IdleStatus { active, lightIdle, deepIdle }

/// Abstract interface for idle monitoring to enable dependency injection and testing
abstract class IIdleMonitor {
  /// Stream that emits true when user becomes idle, false when active
  Stream<IdleStatus> get idleStateStream;

  /// Current idle state
  IdleStatus get status;

  /// Start monitoring for idle state changes
  Future<void> start();

  /// Stop monitoring
  void stop();
}
