import { Platform } from 'react-native'; import type { DeviceType, LocationProviderInfo, PowerState, AsyncHookResult } from './types'; export declare type NotchDevice = { brand: string; model: string; [key: string]: string; }; interface NativeConstants { appName: string; appVersion: string; brand: string; buildNumber: string; bundleId: string; deviceId: string; deviceType: DeviceType; isTablet: boolean; model: string; systemName: string; systemVersion: string; } interface HiddenNativeMethods { getPowerState: () => Promise; getPowerStateSync: () => PowerState; getSupported32BitAbis: () => Promise; getSupported32BitAbisSync: () => string[]; getSupported64BitAbis: () => Promise; getSupported64BitAbisSync: () => string[]; getSupportedAbis: () => Promise; getSupportedAbisSync: () => string[]; getSystemManufacturer: () => Promise; getSystemManufacturerSync: () => string; } interface ExposedNativeMethods { getAndroidId: () => Promise; getAndroidIdSync: () => string; getApiLevel: () => Promise; getApiLevelSync: () => number; getAvailableLocationProviders: () => Promise; getAvailableLocationProvidersSync: () => LocationProviderInfo; getBaseOs: () => Promise; getBaseOsSync: () => string; getBatteryLevel: () => Promise; getBatteryLevelSync: () => number; getBootloader: () => Promise; getBootloaderSync: () => string; getBuildId: () => Promise; getBuildIdSync: () => string; getCarrier: () => Promise; getCarrierSync: () => string; getCodename: () => Promise; getCodenameSync: () => string; getDevice: () => Promise; getDeviceName: () => Promise; getDeviceNameSync: () => string; getDeviceSync: () => string; getDeviceToken: () => Promise; getDisplay: () => Promise; getDisplaySync: () => string; getFingerprint: () => Promise; getFingerprintSync: () => string; getFirstInstallTime: () => Promise; getFirstInstallTimeSync: () => number; getFontScale: () => Promise; getFontScaleSync: () => number; getFreeDiskStorage: () => Promise; getFreeDiskStorageOld: () => Promise; getFreeDiskStorageSync: () => number; getFreeDiskStorageOldSync: () => number; getHardware: () => Promise; getHardwareSync: () => string; getHost: () => Promise; getHostSync: () => string; getIncremental: () => Promise; getIncrementalSync: () => string; getInstallerPackageName: () => Promise; getInstallerPackageNameSync: () => string; getInstallReferrer: () => Promise; getInstallReferrerSync: () => string; getInstanceId: () => Promise; getInstanceIdSync: () => string; getIpAddress: () => Promise; getIpAddressSync: () => string; getLastUpdateTime: () => Promise; getLastUpdateTimeSync: () => number; getMacAddress: () => Promise; getMacAddressSync: () => string; getMaxMemory: () => Promise; getMaxMemorySync: () => number; getPhoneNumber: () => Promise; getPhoneNumberSync: () => string; getPreviewSdkInt: () => Promise; getPreviewSdkIntSync: () => number; getProduct: () => Promise; getProductSync: () => string; getSecurityPatch: () => Promise; getSecurityPatchSync: () => string; getSerialNumber: () => Promise; getSerialNumberSync: () => string; getSystemAvailableFeatures: () => Promise; getSystemAvailableFeaturesSync: () => string[]; getTags: () => Promise; getTagsSync: () => string; getTotalDiskCapacity: () => Promise; getTotalDiskCapacityOld: () => Promise; getTotalDiskCapacitySync: () => number; getTotalDiskCapacityOldSync: () => number; getTotalMemory: () => Promise; getTotalMemorySync: () => number; getType: () => Promise; getTypeSync: () => string; getUniqueId: () => Promise; getUniqueIdSync: () => string; getUsedMemory: () => Promise; getUsedMemorySync: () => number; getUserAgent: () => Promise; getUserAgentSync: () => string; getBrightness: () => Promise; getBrightnessSync: () => number; hasGms: () => Promise; hasGmsSync: () => boolean; hasHms: () => Promise; hasHmsSync: () => boolean; hasSystemFeature: (feature: string) => Promise; hasSystemFeatureSync: (feature: string) => boolean; isAirplaneMode: () => Promise; isAirplaneModeSync: () => boolean; isBatteryCharging: () => Promise; isBatteryChargingSync: () => boolean; isCameraPresent: () => Promise; isCameraPresentSync: () => boolean; isEmulator: () => Promise; isEmulatorSync: () => boolean; isHeadphonesConnected: () => Promise; isHeadphonesConnectedSync: () => boolean; isLocationEnabled: () => Promise; isLocationEnabledSync: () => boolean; isPinOrFingerprintSet: () => Promise; isPinOrFingerprintSetSync: () => boolean; isMouseConnected: () => Promise; isMouseConnectedSync: () => boolean; isKeyboardConnected: () => Promise; isKeyboardConnectedSync: () => boolean; isTabletMode: () => Promise; syncUniqueId: () => Promise; } export interface DeviceInfoNativeModule extends NativeConstants, HiddenNativeMethods, ExposedNativeMethods { } export interface DeviceInfoModule extends ExposedNativeMethods { getApplicationName: () => string; getBrand: () => string; getBuildNumber: () => string; getBundleId: () => string; getDeviceId: () => string; getDeviceType: () => string; getManufacturer: () => Promise; getManufacturerSync: () => string; getModel: () => string; getPowerState: () => Promise>; getPowerStateSync: () => Partial; getReadableVersion: () => string; getSystemName: () => string; getSystemVersion: () => string; getUniqueId: () => Promise; getUniqueIdSync: () => string; getVersion: () => string; hasNotch: () => boolean; hasSystemFeature: (feature: string) => Promise; hasSystemFeatureSync: (feature: string) => boolean; isLandscape: () => Promise; isLandscapeSync: () => boolean; isTablet: () => boolean; supported32BitAbis: () => Promise; supported32BitAbisSync: () => string[]; supported64BitAbis: () => Promise; supported64BitAbisSync: () => string[]; supportedAbis: () => Promise; supportedAbisSync: () => string[]; useBatteryLevel: () => number | null; useBatteryLevelIsLow: () => number | null; useDeviceName: () => AsyncHookResult; useFirstInstallTime: () => AsyncHookResult; useHasSystemFeature: (feature: string) => AsyncHookResult; useIsEmulator: () => AsyncHookResult; usePowerState: () => Partial; useManufacturer: () => AsyncHookResult; useIsHeadphonesConnected: () => AsyncHookResult; useBrightness: () => number | null; } export declare type Getter = () => T; export declare type PlatformArray = typeof Platform.OS[]; export interface GetSupportedPlatformInfoSyncParams { getter: Getter; supportedPlatforms: PlatformArray; defaultValue: T; memoKey?: string; } export interface GetSupportedPlatformInfoAsyncParams extends Omit, 'getter'> { getter: Getter>; } export interface GetFilterPlatformFunctionsParams extends GetSupportedPlatformInfoAsyncParams { syncGetter: Getter; } export interface GetSupportedPlatformInfoFunctionsParams extends GetSupportedPlatformInfoAsyncParams { syncGetter: Getter; } export {};