import { BridgePlugin } from '../bridge';

export interface IOpenFaceRecognitionResult {
  // 状态 0:识别成功 1:识别失败 2:授权失败 3：取消
  status: '0' | '1' | '2' | '3';
  // 结果描述
  message: string;
  // 返回识别的图片（base64格式）
  faceImgBase64: string;
  // 识别描述信息
  delta: string;
  // 假脸判断字段
  image_env?: string;
}

export class OpenFaceRecognition<K> extends BridgePlugin<void, K>{
  protected get ntvPluginName() {
    return "_ntv_util_scan_identity_card";
  }

  protected get availableMinVersion() {
    return "1.0.0";
  }

  protected bridgeExecChrome(pluginName: string | undefined): void {
    // 可针对不同运行环境实现特定的调用逻辑来MOCK，弥补平台差异性.
    throw new Error('OpenFaceRecognition() 未针对当前环境实现');
  }
}

export const openFaceRecognition = () => {
  return new OpenFaceRecognition<IOpenFaceRecognitionResult>().invokeOnce().then(result => {
    return result.cbData;
  });
}