UNPKG

7.84 kBPlain TextView Raw
1import { Platform } from 'react-native';
2import type { DeviceType, LocationProviderInfo, PowerState, AsyncHookResult } from './types';
3
4export type NotchDevice = {
5 brand: string;
6 model: string;
7
8 [key: string]: string;
9};
10
11interface NativeConstants {
12 appName: string;
13 appVersion: string;
14 brand: string;
15 buildNumber: string;
16 bundleId: string;
17 deviceId: string;
18 deviceType: DeviceType;
19 isTablet: boolean;
20 model: string;
21 systemName: string;
22 systemVersion: string;
23}
24
25interface HiddenNativeMethods {
26 getPowerState: () => Promise<PowerState>;
27 getPowerStateSync: () => PowerState;
28 getSupported32BitAbis: () => Promise<string[]>;
29 getSupported32BitAbisSync: () => string[];
30 getSupported64BitAbis: () => Promise<string[]>;
31 getSupported64BitAbisSync: () => string[];
32 getSupportedAbis: () => Promise<string[]>;
33 getSupportedAbisSync: () => string[];
34 getSystemManufacturer: () => Promise<string>;
35 getSystemManufacturerSync: () => string;
36}
37
38interface ExposedNativeMethods {
39 getAndroidId: () => Promise<string>;
40 getAndroidIdSync: () => string;
41 getApiLevel: () => Promise<number>;
42 getApiLevelSync: () => number;
43 getAvailableLocationProviders: () => Promise<LocationProviderInfo>;
44 getAvailableLocationProvidersSync: () => LocationProviderInfo;
45 getBaseOs: () => Promise<string>;
46 getBaseOsSync: () => string;
47 getBatteryLevel: () => Promise<number>;
48 getBatteryLevelSync: () => number;
49 getBootloader: () => Promise<string>;
50 getBootloaderSync: () => string;
51 getBuildId: () => Promise<string>;
52 getBuildIdSync: () => string;
53 getCarrier: () => Promise<string>;
54 getCarrierSync: () => string;
55 getCodename: () => Promise<string>;
56 getCodenameSync: () => string;
57 getDevice: () => Promise<string>;
58 getDeviceName: () => Promise<string>;
59 getDeviceNameSync: () => string;
60 getDeviceSync: () => string;
61 getDeviceToken: () => Promise<string>;
62 getDisplay: () => Promise<string>;
63 getDisplaySync: () => string;
64 getFingerprint: () => Promise<string>;
65 getFingerprintSync: () => string;
66 getFirstInstallTime: () => Promise<number>;
67 getFirstInstallTimeSync: () => number;
68 getFontScale: () => Promise<number>;
69 getFontScaleSync: () => number;
70 getFreeDiskStorage: () => Promise<number>;
71 getFreeDiskStorageOld: () => Promise<number>;
72 getFreeDiskStorageSync: () => number;
73 getFreeDiskStorageOldSync: () => number;
74 getHardware: () => Promise<string>;
75 getHardwareSync: () => string;
76 getHost: () => Promise<string>;
77 getHostSync: () => string;
78 getIncremental: () => Promise<string>;
79 getIncrementalSync: () => string;
80 getInstallerPackageName: () => Promise<string>;
81 getInstallerPackageNameSync: () => string;
82 getInstallReferrer: () => Promise<string>;
83 getInstallReferrerSync: () => string;
84 getInstanceId: () => Promise<string>;
85 getInstanceIdSync: () => string;
86 getIpAddress: () => Promise<string>;
87 getIpAddressSync: () => string;
88 getLastUpdateTime: () => Promise<number>;
89 getLastUpdateTimeSync: () => number;
90 getMacAddress: () => Promise<string>;
91 getMacAddressSync: () => string;
92 getMaxMemory: () => Promise<number>;
93 getMaxMemorySync: () => number;
94 getPhoneNumber: () => Promise<string>;
95 getPhoneNumberSync: () => string;
96 getPreviewSdkInt: () => Promise<number>;
97 getPreviewSdkIntSync: () => number;
98 getProduct: () => Promise<string>;
99 getProductSync: () => string;
100 getSecurityPatch: () => Promise<string>;
101 getSecurityPatchSync: () => string;
102 getSerialNumber: () => Promise<string>;
103 getSerialNumberSync: () => string;
104 getSystemAvailableFeatures: () => Promise<string[]>;
105 getSystemAvailableFeaturesSync: () => string[];
106 getTags: () => Promise<string>;
107 getTagsSync: () => string;
108 getTotalDiskCapacity: () => Promise<number>;
109 getTotalDiskCapacityOld: () => Promise<number>;
110 getTotalDiskCapacitySync: () => number;
111 getTotalDiskCapacityOldSync: () => number;
112 getTotalMemory: () => Promise<number>;
113 getTotalMemorySync: () => number;
114 getType: () => Promise<string>;
115 getTypeSync: () => string;
116 getUniqueId: () => Promise<string>;
117 getUniqueIdSync: () => string;
118 getUsedMemory: () => Promise<number>;
119 getUsedMemorySync: () => number;
120 getUserAgent: () => Promise<string>;
121 getUserAgentSync: () => string;
122 getBrightness: () => Promise<number>;
123 getBrightnessSync: () => number;
124 hasGms: () => Promise<boolean>;
125 hasGmsSync: () => boolean;
126 hasHms: () => Promise<boolean>;
127 hasHmsSync: () => boolean;
128 hasSystemFeature: (feature: string) => Promise<boolean>;
129 hasSystemFeatureSync: (feature: string) => boolean;
130 isAirplaneMode: () => Promise<boolean>;
131 isAirplaneModeSync: () => boolean;
132 isBatteryCharging: () => Promise<boolean>;
133 isBatteryChargingSync: () => boolean;
134 isCameraPresent: () => Promise<boolean>;
135 isCameraPresentSync: () => boolean;
136 isEmulator: () => Promise<boolean>;
137 isEmulatorSync: () => boolean;
138 isHeadphonesConnected: () => Promise<boolean>;
139 isHeadphonesConnectedSync: () => boolean;
140 isLocationEnabled: () => Promise<boolean>;
141 isLocationEnabledSync: () => boolean;
142 isPinOrFingerprintSet: () => Promise<boolean>;
143 isPinOrFingerprintSetSync: () => boolean;
144 isMouseConnected: () => Promise<boolean>;
145 isMouseConnectedSync: () => boolean;
146 isKeyboardConnected: () => Promise<boolean>;
147 isKeyboardConnectedSync: () => boolean;
148 isTabletMode: () => Promise<boolean>;
149 syncUniqueId: () => Promise<string>;
150}
151
152export interface DeviceInfoNativeModule
153 extends NativeConstants,
154 HiddenNativeMethods,
155 ExposedNativeMethods {}
156
157export interface DeviceInfoModule extends ExposedNativeMethods {
158 getApplicationName: () => string;
159 getBrand: () => string;
160 getBuildNumber: () => string;
161 getBundleId: () => string;
162 getDeviceId: () => string;
163 getDeviceType: () => string;
164 getManufacturer: () => Promise<string>;
165 getManufacturerSync: () => string;
166 getModel: () => string;
167 getPowerState: () => Promise<Partial<PowerState>>;
168 getPowerStateSync: () => Partial<PowerState>;
169 getReadableVersion: () => string;
170 getSystemName: () => string;
171 getSystemVersion: () => string;
172 getUniqueId: () => Promise<string>;
173 getUniqueIdSync: () => string;
174 getVersion: () => string;
175 hasNotch: () => boolean;
176 hasSystemFeature: (feature: string) => Promise<boolean>;
177 hasSystemFeatureSync: (feature: string) => boolean;
178 isLandscape: () => Promise<boolean>;
179 isLandscapeSync: () => boolean;
180 isTablet: () => boolean;
181 supported32BitAbis: () => Promise<string[]>;
182 supported32BitAbisSync: () => string[];
183 supported64BitAbis: () => Promise<string[]>;
184 supported64BitAbisSync: () => string[];
185 supportedAbis: () => Promise<string[]>;
186 supportedAbisSync: () => string[];
187 useBatteryLevel: () => number | null;
188 useBatteryLevelIsLow: () => number | null;
189 useDeviceName: () => AsyncHookResult<string>;
190 useFirstInstallTime: () => AsyncHookResult<number>;
191 useHasSystemFeature: (feature: string) => AsyncHookResult<boolean>;
192 useIsEmulator: () => AsyncHookResult<boolean>;
193 usePowerState: () => Partial<PowerState>;
194 useManufacturer: () => AsyncHookResult<string>;
195 useIsHeadphonesConnected: () => AsyncHookResult<boolean>;
196 useBrightness: () => number | null;
197}
198
199export type Getter<T> = () => T;
200export type PlatformArray = typeof Platform.OS[];
201
202export interface GetSupportedPlatformInfoSyncParams<T> {
203 getter: Getter<T>;
204 supportedPlatforms: PlatformArray;
205 defaultValue: T;
206 memoKey?: string;
207}
208
209export interface GetSupportedPlatformInfoAsyncParams<T>
210 extends Omit<GetSupportedPlatformInfoSyncParams<T>, 'getter'> {
211 getter: Getter<Promise<T>>;
212}
213
214export interface GetFilterPlatformFunctionsParams<T>
215 extends GetSupportedPlatformInfoAsyncParams<T> {
216 syncGetter: Getter<T>;
217}
218
219export interface GetSupportedPlatformInfoFunctionsParams<T>
220 extends GetSupportedPlatformInfoAsyncParams<T> {
221 syncGetter: Getter<T>;
222}