import { DeepMaybeObservable, Supportable, ReadonlyObservable } from '@usels/core'; import { ConfigurableWindow } from '../../shared/configurable.mjs'; import '@legendapp/state'; type NetworkType = "bluetooth" | "cellular" | "ethernet" | "none" | "wifi" | "wimax" | "other" | "unknown"; type NetworkEffectiveType = "slow-2g" | "2g" | "3g" | "4g"; interface UseNetworkOptions extends ConfigurableWindow { } interface UseNetworkReturn extends Supportable { /** Whether the browser is online */ isOnline$: ReadonlyObservable; /** Timestamp of last offline transition */ offlineAt$: ReadonlyObservable; /** Timestamp of last online transition */ onlineAt$: ReadonlyObservable; /** Downlink speed in Mbps */ downlink$: ReadonlyObservable; /** Max reachable downlink speed in Mbps */ downlinkMax$: ReadonlyObservable; /** Effective connection type */ effectiveType$: ReadonlyObservable; /** Estimated round-trip time in ms */ rtt$: ReadonlyObservable; /** Whether data-saver mode is active */ saveData$: ReadonlyObservable; /** Connection type */ type$: ReadonlyObservable; } declare function createNetwork(_options?: DeepMaybeObservable): UseNetworkReturn; export { type NetworkEffectiveType, type NetworkType, type UseNetworkOptions, type UseNetworkReturn, createNetwork };