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); TaskEither changeConfigOptions( ConfigOptions options, ); TaskEither start(String fileName); TaskEither stop(); TaskEither restart(String fileName); Stream>> watchOutbounds(); TaskEither selectOutbound( String groupTag, String outboundTag, ); TaskEither urlTest(String groupTag); Stream watchConnectionStatus(); Stream> watchCoreStatus(); Stream> watchLogs(); }