export interface DeviceInfo { runtime: { platform: 'browser' | 'native'; browserName: string | null; browserVersion: string | null; jsEngine: 'Hermes' | 'JSC' | 'V8' | null; engineVersion: string | null; }; system: { os: { name: string | null; version: string | null; buildId?: string | null; }; device: { type: 'phone' | 'tablet' | 'desktop' | 'tv' | 'console' | 'wearable' | 'unknown'; brand: string | null; model: string | null; isVirtual?: boolean; }; }; screen: { width: number; height: number; scale: number; fontScale?: number; orientation: 'portrait' | 'landscape'; }; locale: { language: string; region: string | null; full: string; timeZone: string; uses24HourClock: boolean; }; appearance: { colorScheme: 'light' | 'dark' | 'no-preference'; contrast: 'more' | 'less' | 'no-preference'; reducedMotion: boolean; fontScale: number; }; input: { primaryPointer: 'touch' | 'mouse' | 'pen' | 'unknown'; pointerTypes: Array<'touch' | 'mouse' | 'pen'>; hasTouch: boolean; hasMouse: boolean; hasKeyboard: boolean | null; }; safeArea: { top: number; bottom: number; left: number; right: number; }; network?: { ipAddress?: string | null; macAddress?: string | null; connectionType?: 'wifi' | 'cellular' | 'ethernet' | 'unknown'; downlink?: number | null; }; capabilities?: { hdr: boolean | null; gpu: string | null; }; platform: { isWeb: boolean; isNative: boolean; isIOS: boolean; isAndroid: boolean; isMobile: boolean; isTablet: boolean; isPhone: boolean; isDesktop: boolean; isConsole: boolean; isTV: boolean; isWearable: boolean; }; helpers: { isPhone: boolean; isTablet: boolean; isMobile: boolean; isDesktop: boolean; isDarkMode: boolean; isLandscape: boolean; getOS: () => string; getBrand: () => string | null; }; meta: { updatedAt: number; ready: boolean; }; } export interface UseDeviceInfoOptions { enableExtendedData?: boolean; } type LocaleState = DeviceInfo['locale']; export declare function useDeviceInfo(options?: UseDeviceInfoOptions): DeviceInfo; /** @internal */ export declare const __deviceInfoInternals: { detectLocale: () => LocaleState; }; export default useDeviceInfo; /** * Example Usage: * * const info = useDeviceInfo({ enableExtendedData: true }); * console.log(`Running on ${info.system.os.name} with a ${info.system.device.type}`); */