/**
 * @param {String} ip
 *        The IP address to resolve to a geolocation.
 * @returns {Promise.<EdgeScapeGeolocation>}
 *        Rejects in the event of a cache miss followed by a failed subrequest to
 *        resolve geolocation. Fulfills otherwise, with either a cached value or a
 *        fresh one.
 *
 *        Also includes a Symbol(CacheAccessId) property, which can be used to look up
 *        information about the underlying cache access.
 */
export function getByIp(ip: string): Promise<EdgeScapeGeolocation>;
export namespace getByIp {
    let ____Cache_1522: any;
    export { ____Cache_1522 as __@Cache@1522 };
    let ____CacheAccesses_1525: any;
    export { ____CacheAccesses_1525 as __@CacheAccesses@1525 };
}
export const LOCATION_ORACLE_URL: "https://cdn.optimizely.com/geo4.json";
declare namespace _default {
    export { getByIp };
}
export default _default;
export type LocationResponse = {
    /**
     *        The IP address whose location was resolved.
     */
    ip: string;
    /**
     *        Geolocation data for `ip`.
     */
    location: EdgeScapeGeolocation;
};
/**
 * A record of geolocation data, sourced from Akamai EdgeScape.
 * See https://developer.akamai.com/edgescape
 */
export type EdgeScapeGeolocation = {
    /**
     *        EdgeScape's two-letter continent code
     */
    continent: string;
    /**
     *        ISO-3166's two-letter country code
     */
    country: string;
    /**
     *        ISO-3166's two-letter code for a country subdivision
     *        (e.g., state, province, region)
     */
    region: string;
    /**
     *        EdgeScape's name for a nearby city
     */
    city: string;
};
