import { Performance } from "perf_hooks";

export {};

declare global {
  namespace QuickJS {
    type TypedArray =
      | Uint8Array
      | Uint8ClampedArray
      | Uint16Array
      | Uint32Array
      | Int8Array
      | Int16Array
      | Int32Array
      | BigUint64Array
      | BigInt64Array
      | Float32Array
      | Float64Array;
    type ArrayBufferView = TypedArray | DataView;
  }

  var performance: Performance;

  var crypto: {
    createHash: typeof import("crypto").createHash;
    createHmac: typeof import("crypto").createHmac;
    randomBytes: typeof import("crypto").randomBytes;
    randomInt: typeof import("crypto").randomInt;
    randomUUID: typeof import("crypto").randomUUID;
    randomFillSync: typeof import("crypto").randomFillSync;
    randomFill: typeof import("crypto").randomFill;
    getRandomValues: typeof import("crypto").getRandomValues;
    subtle: import("crypto").webcrypto.SubtleCrypto;
  };
}
