import 'dart:async';
import 'package:xp_nix/src/models/activity_event.dart';

/// Abstract interface for activity detection to enable dependency injection and testing
abstract class IActivityDetector {
  /// Stream that emits activity events when window/application changes occur
  Stream<ActivityEvent> get activityStream;

  /// Start detecting activity changes
  Future<void> start();

  /// Stop detecting activity changes
  void stop();

  /// Get current active application info
  Future<ActivityEvent> getCurrentActivity();
}
