/* 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;
  // LABEL FILES
  var SDC_WASM_LABEL_FILE_NAME: string;
  var SDC_WASM_LABEL_SIMD_FILE_NAME: string;
  var SDC_WASM_LABEL_MT_FILE_NAME: string;
  var SDC_WASM_LABEL_MT_SIMD_FILE_NAME: string;
  // LABEL FILES HASHES
  var SDC_WASM_LABEL_HASH: string;
  var SDC_WASM_LABEL_SIMD_HASH: string;
  var SDC_WASM_LABEL_MT_HASH: string;
  var SDC_WASM_LABEL_MT_SIMD_HASH: string;

  var WASM_METADATA: Record<string, { bytes: number }>;
  var DEBUG_MEMORY: boolean;
  var ViaReceiver: unknown;
  var path: string;

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