UNPKG

native-fn

Version:
98 lines (92 loc) 2.52 kB
declare interface NativePlugin<Key extends string, Module, Constants extends Record<string, any> = Record<string, any>, Errors extends Record<string, ErrorConstructor> = Record<string, ErrorConstructor>> { installed: boolean; name: Key; module: Module; Constants: Constants; Errors: Errors; } declare enum OS { Unknown = "Unknown", Android = "Android", iOS = "iOS", Windows = "Windows", MacOS = "MacOS" } declare enum Devices { Unknown = "Unknown", Mobile = "Mobile", Desktop = "Desktop" } declare enum Engines { Unknown = "Unknown", EdgeHTML = "EdgeHTML", ArkWeb = "ArkWeb", Blink = "Blink", Presto = "Presto", WebKit = "WebKit", Trident = "Trident", NetFront = "NetFront", KHTML = "KHTML", Tasman = "Tasman", Gecko = "Gecko" } declare enum Browsers { Unknown = "Unknown", Chrome = "Chrome", Safari = "Safari", Edge = "Edge", Firefox = "Firefox", Opera = "Opera", IE = "IE", SamsungInternet = "SamsungInternet" } declare enum CrossPlatformFramework { Unknown = "Unknown", ReactNative = "ReactNative", Electron = "Electron", Cordova = "Cordova" } declare type VersionResolver = undefined | string | ((string: string | undefined) => string); declare interface PlatformInstance { os: NameVersionPair<OS>; engine: NameVersionPair<Engines>; browser: NameVersionPair<Browsers>; device: Devices; crossPlatformFramework: CrossPlatformFramework; locale: Locale; renderer: string; userAgent: string; readyState: 'loading' | 'complete'; isNode: boolean; isStandalone: boolean; isWebview: boolean; onready(callback: (platform: PlatformInstance) => void): void; } declare interface NameVersionPair<T> { name: T; version: string; } declare interface Locale { language: string | null; languages: string[]; timezone: string | null; timezoneOffset: number; } declare module 'native-fn' { interface NativePlugins { Platform: PlatformInstance; } interface NativeConstants { } interface NativeErrors { } } declare const NativePlatformPlugin: NativePlugin<'Platform', PlatformInstance, { OS: typeof OS; Devices: typeof Devices; Engines: typeof Engines; Browsers: typeof Browsers; CrossPlatformFramework: typeof CrossPlatformFramework; }, {}>; export { NativePlatformPlugin as default }; export type { Locale, NameVersionPair, PlatformInstance, VersionResolver };