import 'package:fpdart/fpdart.dart'; import 'package:hiddify/domain/connectivity/connectivity.dart'; import 'package:hiddify/domain/core_service_failure.dart'; import 'package:hiddify/domain/singbox/config_options.dart'; import 'package:hiddify/domain/singbox/core_status.dart'; import 'package:hiddify/domain/singbox/outbounds.dart'; abstract interface class SingboxFacade { TaskEither setup(); TaskEither parseConfig( String path, String tempPath, bool debug, ); TaskEither changeConfigOptions( ConfigOptions options, ); TaskEither start( String fileName, bool disableMemoryLimit, ); TaskEither stop(); TaskEither restart( String fileName, bool disableMemoryLimit, ); Stream>> watchOutbounds(); TaskEither selectOutbound( String groupTag, String outboundTag, ); TaskEither urlTest(String groupTag); Stream watchConnectionStatus(); Stream> watchCoreStatus(); Stream>> watchLogs(); TaskEither clearLogs(); }