import { FingerprintWarning } from './errors.js'; export interface GeolocationInfo { /** Primary IP address (IPv4 for backward compatibility, null if unavailable) */ ipAddress: string | null; /** IPv4 address (null if unavailable) */ ipv4: string | null; /** IPv6 address (null if not available) */ ipv6: string | null; country: { isoCode: string; name: string; }; registeredCountry: { isoCode: string; name: string; isInEuropeanUnion?: boolean; }; city: { name: string; geonameId: number; }; continent: { code: string; name: string; }; subdivisions: Array<{ isoCode: string; name: string; }>; location: { accuracyRadius: number; latitude: number; longitude: number; timeZone: string; }; postal: { code: string; }; traits: { isAnonymous: boolean; isAnonymousProxy: boolean; isAnonymousVpn: boolean; isAnycast: boolean; isHostingProvider: boolean; isLegitimateProxy: boolean; isPublicProxy: boolean; isResidentialProxy: boolean; isSatelliteProvider: boolean; isTorExitNode: boolean; ipAddress: string; network: string; }; } export interface GeolocationFetchOptions { timeoutMs?: number; onWarning?: (warning: FingerprintWarning) => void; } /** * Get mock geolocation data for fallback scenarios */ export declare function getMockGeolocationData(): GeolocationInfo; /** * Fetch geolocation information for the current user's IP address. * Always returns valid GeolocationInfo data, falling back to mock data if needed. * @returns Geolocation information (never null) */ export declare function fetchGeolocationInfo(options?: GeolocationFetchOptions): Promise;