export declare type OperatingSystem = 'ios' | 'android' | 'windows' | 'mac' | 'unknown'; export interface DeviceId { /** * The identifier of the device as available to the app. This identifier may change * on modern mobile platforms that only allow per-app install ids. * * On iOS, the identifier is a UUID that uniquely identifies a device to the app’s vendor ([read more](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)). * * on Android 8+, __the identifier is a 64-bit number (expressed as a hexadecimal string)__, unique to each combination of app-signing key, user, and device ([read more](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID)). * * On web, a random identifier is generated and stored on localStorage for subsequent calls. * If localStorage is not available a new random identifier will be generated on every call. * * @since 1.0.0 */ identifier: string; } export interface DeviceInfo { /** * The name of the device. For example, "John's iPhone". * * This is only supported on iOS and Android 7.1 or above. * * On iOS 16+ this will return a generic device name without the appropriate [entitlements](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_device-information_user-assigned-device-name). * * @since 1.0.0 */ name?: string; /** * The device model. For example, "iPhone13,4". * * @since 1.0.0 */ model: string; /** * The device platform (lowercase). * * @since 1.0.0 */ platform: 'ios' | 'android' | 'web'; /** * The operating system of the device. * * @since 1.0.0 */ operatingSystem: OperatingSystem; /** * The version of the device OS. * * @since 1.0.0 */ osVersion: string; /** * The iOS version number. * * Only available on iOS. * * Multi-part version numbers are crushed down into an integer padded to two-digits, ex: `"16.3.1"` -> `160301` * * @since 5.0.0 */ iOSVersion?: number; /** * The Android SDK version number. * * Only available on Android. * * @since 5.0.0 */ androidSDKVersion?: number; /** * The manufacturer of the device. * * @since 1.0.0 */ manufacturer: string; /** * Whether the app is running in a simulator/emulator. * * @since 1.0.0 */ isVirtual: boolean; /** * Approximate memory used by the current app, in bytes. Divide by * 1048576 to get the number of MBs used. * * @since 1.0.0 */ memUsed?: number; /** * How much free disk space is available on the normal data storage * path for the os, in bytes. * * On Android it returns the free disk space on the "system" * partition holding the core Android OS. * On iOS this value is not accurate. * * @deprecated Use `realDiskFree`. * @since 1.0.0 */ diskFree?: number; /** * The total size of the normal data storage path for the OS, in bytes. * * On Android it returns the disk space on the "system" * partition holding the core Android OS. * * @deprecated Use `realDiskTotal`. * @since 1.0.0 */ diskTotal?: number; /** * How much free disk space is available on the normal data storage, in bytes. * * @since 1.1.0 */ realDiskFree?: number; /** * The total size of the normal data storage path, in bytes. * * @since 1.1.0 */ realDiskTotal?: number; /** * The web view browser version * * @since 1.0.0 */ webViewVersion: string; } export interface BatteryInfo { /** * A percentage (0 to 1) indicating how much the battery is charged. * * @since 1.0.0 */ batteryLevel?: number; /** * Whether the device is charging. * * @since 1.0.0 */ isCharging?: boolean; } export interface GetLanguageCodeResult { /** * Two character language code. * * @since 1.0.0 */ value: string; } export interface LanguageTag { /** * Returns a well-formed IETF BCP 47 language tag. * * @since 4.0.0 */ value: string; } export interface DevicePlugin { /** * Return an unique identifier for the device. * * @since 1.0.0 */ getId(): Promise; /** * Return information about the underlying device/os/platform. * * @since 1.0.0 */ getInfo(): Promise; /** * Return information about the battery. * * @since 1.0.0 */ getBatteryInfo(): Promise; /** * Get the device's current language locale code. * * @since 1.0.0 */ getLanguageCode(): Promise; /** * Get the device's current language locale tag. * * @since 4.0.0 */ getLanguageTag(): Promise; } /** * @deprecated Use `BatteryInfo`. * @since 1.0.0 */ export declare type DeviceBatteryInfo = BatteryInfo; /** * @deprecated Use `GetLanguageCodeResult`. * @since 1.0.0 */ export declare type DeviceLanguageCodeResult = GetLanguageCodeResult;