import { type InitialState } from '../util/resolveHookState.js';
export type NetworkInformation = {
    readonly downlink: number;
    readonly downlinkMax: number;
    readonly effectiveType: 'slow-2g' | '2g' | '3g' | '4g';
    readonly rtt: number;
    readonly saveData: boolean;
    readonly type: 'bluetooth' | 'cellular' | 'ethernet' | 'none' | 'wifi' | 'wimax' | 'other' | 'unknown';
} & EventTarget;
export type UseNetworkState = {
    online: boolean | undefined;
    previous: boolean | undefined;
    since: Date | undefined;
    downlink: NetworkInformation['downlink'] | undefined;
    downlinkMax: NetworkInformation['downlinkMax'] | undefined;
    effectiveType: NetworkInformation['effectiveType'] | undefined;
    rtt: NetworkInformation['rtt'] | undefined;
    saveData: NetworkInformation['saveData'] | undefined;
    type: NetworkInformation['type'] | undefined;
};
export declare function useNetworkState(initialState?: InitialState<UseNetworkState>): UseNetworkState;
