/**
 * City of the original client IP as calculated by Vercel Proxy.
 */
export declare const CITY_HEADER_NAME = "x-vercel-ip-city";
/**
 * Country of the original client IP as calculated by Vercel Proxy.
 */
export declare const COUNTRY_HEADER_NAME = "x-vercel-ip-country";
/**
 * Client IP as calculated by Vercel Proxy.
 */
export declare const IP_HEADER_NAME = "x-real-ip";
/**
 * Latitude of the original client IP as calculated by Vercel Proxy.
 */
export declare const LATITUDE_HEADER_NAME = "x-vercel-ip-latitude";
/**
 * Longitude of the original client IP as calculated by Vercel Proxy.
 */
export declare const LONGITUDE_HEADER_NAME = "x-vercel-ip-longitude";
/**
 * Country region of the original client IP calculated by Vercel Proxy.
 *
 * See [docs](https://vercel.com/docs/concepts/edge-network/headers#x-vercel-ip-country-region).
 */
export declare const REGION_HEADER_NAME = "x-vercel-ip-country-region";
/**
 * The request ID for each request generated by Vercel Proxy.
 */
export declare const REQUEST_ID_HEADER_NAME = "x-vercel-id";
/**
 * Unicode characters for emoji flags start at this number, and run up to 127469.
 */
export declare const EMOJI_FLAG_UNICODE_STARTING_POSITION = 127397;
/**
 * We define a new type so this function can be reused with
 * the global `Request`, `node-fetch` and other types.
 */
export interface Request {
    headers: {
        get(name: string): string | null;
    };
}
/**
 * The location information of a given request.
 */
export interface Geo {
    /** The city that the request originated from. */
    city?: string;
    /** The country that the request originated from. */
    country?: string;
    /** The flag emoji for the country the request originated from. */
    flag?: string;
    /** The [Vercel Edge Network region](https://vercel.com/docs/concepts/edge-network/regions) that received the request. */
    region?: string;
    /** The region part of the ISO 3166-2 code of the client IP.
     * See [docs](https://vercel.com/docs/concepts/edge-network/headers#x-vercel-ip-country-region).
     */
    countryRegion?: string;
    /** The latitude of the client. */
    latitude?: string;
    /** The longitude of the client. */
    longitude?: string;
}
/**
 * Returns the IP address of the request from the headers.
 *
 * @see {@link IP_HEADER_NAME}
 * @param request The incoming request object which provides the IP
 */
export declare function ipAddress(request: Request): string | undefined;
/**
 * Returns the location information for the incoming request.
 *
 * @see {@link CITY_HEADER_NAME}
 * @see {@link COUNTRY_HEADER_NAME}
 * @see {@link REGION_HEADER_NAME}
 * @see {@link LATITUDE_HEADER_NAME}
 * @see {@link LONGITUDE_HEADER_NAME}
 * @param request The incoming request object which provides the geolocation data
 */
export declare function geolocation(request: Request): Geo;
