/* eslint-disable no-var,vars-on-top */
// var declarations needed to define global properties
declare global {
  var VERSION: string;
  var PACKAGE_NAME: string;
  var SDC_WASM_CORE_FILE_NAME: string;
  var SDC_WASM_CORE_SIMD_FILE_NAME: string;
  var SDC_WASM_CORE_HASH: string;
  var SDC_WASM_CORE_SIMD_HASH: string;
  var SDC_WASM_CORE_MT_FILE_NAME: string;
  var SDC_WASM_CORE_MT_SIMD_FILE_NAME: string;
  var SDC_WASM_CORE_MT_HASH: string;
  var SDC_WASM_CORE_MT_SIMD_HASH: string;
  var SDC_WASM_SIDE_MODULE_FILE_NAME: string;
  var SDC_WASM_JS_VERSION: string;
  // PARSER FILES
  var SDC_WASM_PARSER_FILE_NAME: string;
  var SDC_WASM_PARSER_SIMD_FILE_NAME: string;
  var SDC_WASM_PARSER_MT_FILE_NAME: string;
  var SDC_WASM_PARSER_MT_SIMD_FILE_NAME: string;
  // PARSER FILES HASHES
  var SDC_WASM_PARSER_HASH: string;
  var SDC_WASM_PARSER_SIMD_HASH: string;
  var SDC_WASM_PARSER_MT_HASH: string;
  var SDC_WASM_PARSER_MT_SIMD_HASH: string;

  var WASM_METADATA: Record<string, { bytes: number }>;
  var path: string;

  interface Navigator {
    mozVibrate?: Navigator["vibrate"];
    msVibrate?: Navigator["vibrate"];
    webkitVibrate?: Navigator["vibrate"];
    enumerateDevices?: () => Promise<MediaDeviceInfo[]>;
  }
}
