typings.d.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. // Type definitions for Bowser 1.x
  2. // Project: https://github.com/lancedikson/bowser
  3. // Definitions by: Paulo Cesar <https://github.com/pocesar>
  4. // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
  5. declare const bowser: bowser.IBowser;
  6. export = bowser;
  7. export as namespace bowser;
  8. declare namespace bowser {
  9. export interface IBowserOS {
  10. mac: boolean;
  11. /**other than Windows Phone */
  12. windows: boolean;
  13. windowsphone: boolean;
  14. /**other than android, chromeos, webos, tizen, and sailfish */
  15. linux: boolean;
  16. chromeos: boolean;
  17. android: boolean;
  18. /** also sets one of iphone/ipad/ipod */
  19. ios: boolean;
  20. blackberry: boolean;
  21. firefoxos: boolean;
  22. /** may also set touchpad */
  23. webos: boolean;
  24. bada: boolean;
  25. tizen: boolean;
  26. sailfish: boolean;
  27. }
  28. export interface IBowserVersions {
  29. chrome: boolean;
  30. chromium: boolean;
  31. firefox: boolean;
  32. msie: boolean;
  33. msedge: boolean;
  34. safari: boolean;
  35. android: boolean;
  36. ios: boolean;
  37. opera: boolean;
  38. phantom: boolean;
  39. blackberry: boolean;
  40. webos: boolean;
  41. silk: boolean;
  42. bada: boolean;
  43. tizen: boolean;
  44. seamonkey: boolean;
  45. sailfish: boolean;
  46. ucbrowser: boolean;
  47. qupzilla: boolean;
  48. vivaldi: boolean;
  49. sleipnir: boolean;
  50. kMeleon: boolean;
  51. }
  52. export interface IBowserEngines {
  53. /** IE <= 11 */
  54. msie: boolean;
  55. /**Chrome 0-27, Android <4.4, iOs, BB, etc. */
  56. webkit: boolean;
  57. /**Chrome >=28, Android >=4.4, Opera, etc. */
  58. blink: boolean;
  59. /**Firefox, etc. */
  60. gecko: boolean;
  61. /** IE > 11 */
  62. msedge: boolean;
  63. /** If a tablet device is detected, the flag tablet is set instead of mobile. */
  64. tablet: boolean;
  65. /** All detected mobile OSes are additionally flagged mobile, unless it's a tablet */
  66. mobile: boolean;
  67. }
  68. export interface IBowserGrade {
  69. /** Grade A browser */
  70. a: boolean;
  71. /** Grade C browser */
  72. c: boolean;
  73. /** Grade X browser */
  74. x: boolean;
  75. /**A human readable name for this browser. E.g. 'Chrome', '' */
  76. name: string;
  77. /**Version number for the browser. E.g. '32.0' */
  78. version: string|number;
  79. osversion: string|number;
  80. }
  81. export interface IBowserDetection extends IBowserGrade, IBowserEngines, IBowserOS, IBowserVersions { }
  82. export interface IBowserMinVersions {
  83. // { msie: "11", "firefox": "4" }
  84. [index: string]: string;
  85. }
  86. export interface IBowser extends IBowserDetection {
  87. (): IBowserDetection;
  88. test(browserList: string[]): boolean;
  89. _detect(ua: string): IBowser;
  90. detect(ua: string): IBowser;
  91. compareVersions(versions: string[]): number;
  92. check(minVersions: IBowserMinVersions, strictMode?: boolean|string, ua?: string): Boolean;
  93. isUnsupportedBrowser(minVersions: IBowserMinVersions, strictMode?: boolean|string, ua?: string): boolean;
  94. }
  95. }