import 'package:flyinsono/lab/mock_data/mock_rpc.dart';
import 'package:fis_common/event/event_type.dart';
import 'package:flyinsono/lab/pages/lab_export/entitys/image_type.dart';
import 'entities/process_arg.dart';
import 'entities/task_info.dart';
import 'package:fis_jsonrpc/rpc.dart';

abstract class IExportDataManager {
  String get taskId;

  FEventHandler<ExportProcessArg> get processChange;

  Future<String> exportDatas(
    String name,
    String? path, {
    ExportImageFormat? exportImageFormat,
    required String businessCode,
    required ProjectSampleDataExportResult sampleDataInfo,
  });

  TaskBaseDTO? getCurrentTask();

  List<TaskDetail> getLocalTasks(String currentSelectedTaskId);

  TaskInfo? getTaskInfo(String taskId);

  ///获取外置存储信息
  Future<List<UDiskDriveInfoDTO>> getExternalStorageList();

  Future<void> cancelExport();

  ///根据样本获取导出数据
  Future<ProjectSampleDataExportResult> getProjectSampleDataExport(
      String projectCode, List<String> patientCodes);

  Future<List<UDiskDriveInfoDTO>> getAllStorageList();
}
