1import { CellularGeneration } from './Cellular.types';
2
3export default {
4  get allowsVoip(): null {
5    return null;
6  },
7  get carrier(): null {
8    return null;
9  },
10  get isoCountryCode(): null {
11    return null;
12  },
13  get mobileCountryCode(): null {
14    return null;
15  },
16  get mobileNetworkCode(): null {
17    return null;
18  },
19  async getCellularGenerationAsync(): Promise<CellularGeneration> {
20    const connection =
21      // @ts-expect-error
22      navigator.connection || navigator.mozConnection || navigator.webkitConnection || null;
23    if (connection !== null) {
24      switch (connection.effectiveType) {
25        case 'slow-2g':
26        case '2g':
27          return CellularGeneration.CELLULAR_2G;
28        case '3g':
29          return CellularGeneration.CELLULAR_3G;
30        case '4g':
31          return CellularGeneration.CELLULAR_4G;
32        default:
33          return CellularGeneration.UNKNOWN;
34      }
35    } else {
36      return CellularGeneration.UNKNOWN;
37    }
38  },
39
40  async allowsVoipAsync(): Promise<boolean | null> {
41    return null;
42  },
43  async getIsoCountryCodeAsync(): Promise<string | null> {
44    return null;
45  },
46  async getCarrierNameAsync(): Promise<string | null> {
47    return null;
48  },
49  async getMobileCountryCodeAsync(): Promise<string | null> {
50    return null;
51  },
52  async getMobileNetworkCodeAsync(): Promise<string | null> {
53    return null;
54  },
55};
56