import 'dart:io'; import 'package:fpdart/fpdart.dart'; import 'package:hiddify/services/singbox/ffi_singbox_service.dart'; import 'package:hiddify/services/singbox/mobile_singbox_service.dart'; abstract interface class SingboxService { factory SingboxService() { if (Platform.isAndroid) { return MobileSingboxService(); } return FFISingboxService(); } TaskEither setup( String baseDir, String workingDir, String tempDir, ); TaskEither parseConfig(String path); TaskEither create(String configPath); TaskEither start(); TaskEither stop(); Stream watchLogs(String path); }