import 'package:fis_common/event/event_type.dart';
import 'package:fis_vid/data_host/data_host.dart';

import '../config/style_config.dart';
import '../player/play_controller.dart';
import 'application.dart';
import 'exam_info.dart';

/// 测量模块控制器
abstract class IMeasureController {
  /// 检查信息
  ExamInfo get examInfo;

  /// 当前vid链接地址
  String get currentVidUrl;

  /// Vid数据宿主
  VidDataHost get dataHost;

  /// 播放控制器
  IPlayerController get playerController;

  /// 当前工作应用
  IApplication get workingApplication;

  /// 测量工具样式配置
  IStyeConfiguration get styleConfiguration;

  /// 图像加载完成事件
  late FEventHandler<ExamImageInfo?> imageLoaded;

  /// 是否可测量
  bool get canDoMeasure;

  /// 加载
  Future<void> load();

  /// 释放资源
  void dispose();
}
