be09a0390f463049ba8ecf2b2b0d5592c28831d8d6b38ca2cab7fdfd45fe9472fcabd8afca89c8114d9ec8c679ee98b9e6aeb0b15d7df2be8ce5cced04b32f 891 B

12345678910111213141516171819202122232425
  1. export {};
  2. import { LockManager } from "worker_threads";
  3. // lib.webworker has `WorkerNavigator` rather than `Navigator`, so conditionals use `onabort` instead of `onmessage`
  4. type _Navigator = typeof globalThis extends { onabort: any } ? {} : Navigator;
  5. interface Navigator {
  6. readonly hardwareConcurrency: number;
  7. readonly language: string;
  8. readonly languages: readonly string[];
  9. readonly locks: LockManager;
  10. readonly platform: string;
  11. readonly userAgent: string;
  12. }
  13. declare global {
  14. interface Navigator extends _Navigator {}
  15. var Navigator: typeof globalThis extends { onabort: any; Navigator: infer T } ? T : {
  16. prototype: Navigator;
  17. new(): Navigator;
  18. };
  19. // Needs conditional inference for lib.dom and lib.webworker compatibility
  20. var navigator: typeof globalThis extends { onmessage: any; navigator: infer T } ? T : Navigator;
  21. }