import { APIResource } from "../../core/resource.mjs";
import { APIPromise } from "../../core/api-promise.mjs";
import { RequestOptions } from "../../internal/request-options.mjs";
export declare class BaseGeolocations extends APIResource {
    static readonly _key: readonly ['radar', 'geolocations'];
    /**
     * Retrieves a list of geolocations. Geolocation names can be localized by sending
     * an `Accept-Language` HTTP header with a BCP 47 language tag (e.g.,
     * `Accept-Language: pt-PT`). The full quality-value chain is supported (e.g.,
     * `pt-PT,pt;q=0.9,en;q=0.8`).
     *
     * @example
     * ```ts
     * const geolocations = await client.radar.geolocations.list();
     * ```
     */
    list(query?: GeolocationListParams | null | undefined, options?: RequestOptions): APIPromise<GeolocationListResponse>;
    /**
     * Retrieves the requested Geolocation information. Geolocation names can be
     * localized by sending an `Accept-Language` HTTP header with a BCP 47 language tag
     * (e.g., `Accept-Language: pt-PT`). The full quality-value chain is supported
     * (e.g., `pt-PT,pt;q=0.9,en;q=0.8`).
     *
     * @example
     * ```ts
     * const geolocation = await client.radar.geolocations.get(
     *   '3190509',
     * );
     * ```
     */
    get(geoID: string, query?: GeolocationGetParams | null | undefined, options?: RequestOptions): APIPromise<GeolocationGetResponse>;
}
export declare class Geolocations extends BaseGeolocations {
}
export interface GeolocationListResponse {
    geolocations: Array<GeolocationListResponse.Geolocation>;
}
export declare namespace GeolocationListResponse {
    interface Geolocation {
        geoId: string;
        /**
         * A numeric string.
         */
        latitude: string;
        /**
         * A numeric string.
         */
        longitude: string;
        name: string;
        parent: Geolocation.Parent;
        /**
         * The type of the geolocation.
         */
        type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
        code?: string;
        /**
         * BCP 47 locale code used for the geolocation name translation
         */
        locale?: string;
    }
    namespace Geolocation {
        interface Parent {
            geoId: string;
            /**
             * A numeric string.
             */
            latitude: string;
            /**
             * A numeric string.
             */
            longitude: string;
            name: string;
            parent: Parent.Parent;
            /**
             * The type of the geolocation.
             */
            type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
            code?: string;
            /**
             * BCP 47 locale code used for the geolocation name translation
             */
            locale?: string;
        }
        namespace Parent {
            interface Parent {
                geoId: string;
                /**
                 * A numeric string.
                 */
                latitude: string;
                /**
                 * A numeric string.
                 */
                longitude: string;
                name: string;
                /**
                 * The type of the geolocation.
                 */
                type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
                code?: string;
                /**
                 * BCP 47 locale code used for the geolocation name translation
                 */
                locale?: string;
            }
        }
    }
}
export interface GeolocationGetResponse {
    geolocation: GeolocationGetResponse.Geolocation;
}
export declare namespace GeolocationGetResponse {
    interface Geolocation {
        geoId: string;
        /**
         * A numeric string.
         */
        latitude: string;
        /**
         * A numeric string.
         */
        longitude: string;
        name: string;
        parent: Geolocation.Parent;
        /**
         * The type of the geolocation.
         */
        type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
        code?: string;
        /**
         * BCP 47 locale code used for the geolocation name translation
         */
        locale?: string;
    }
    namespace Geolocation {
        interface Parent {
            geoId: string;
            /**
             * A numeric string.
             */
            latitude: string;
            /**
             * A numeric string.
             */
            longitude: string;
            name: string;
            parent: Parent.Parent;
            /**
             * The type of the geolocation.
             */
            type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
            code?: string;
            /**
             * BCP 47 locale code used for the geolocation name translation
             */
            locale?: string;
        }
        namespace Parent {
            interface Parent {
                geoId: string;
                /**
                 * A numeric string.
                 */
                latitude: string;
                /**
                 * A numeric string.
                 */
                longitude: string;
                name: string;
                /**
                 * The type of the geolocation.
                 */
                type: 'CONTINENT' | 'COUNTRY' | 'ADM1';
                code?: string;
                /**
                 * BCP 47 locale code used for the geolocation name translation
                 */
                locale?: string;
            }
        }
    }
}
export interface GeolocationListParams {
    /**
     * Format in which results will be returned.
     */
    format?: 'JSON' | 'CSV';
    /**
     * Filters results by geolocation. Specify a comma-separated list of GeoNames IDs.
     */
    geoId?: string;
    /**
     * Limits the number of objects returned in the response.
     */
    limit?: number;
    /**
     * Filters results by location. Specify a comma-separated list of alpha-2 location
     * codes.
     */
    location?: string;
    /**
     * Skips the specified number of objects before fetching the results.
     */
    offset?: number;
}
export interface GeolocationGetParams {
    /**
     * Format in which results will be returned.
     */
    format?: 'JSON' | 'CSV';
}
export declare namespace Geolocations {
    export { type GeolocationListResponse as GeolocationListResponse, type GeolocationGetResponse as GeolocationGetResponse, type GeolocationListParams as GeolocationListParams, type GeolocationGetParams as GeolocationGetParams, };
}
//# sourceMappingURL=geolocations.d.mts.map