import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as LocationsAPI from 'cloudflare/resources/zero-trust/gateway/locations';
import { SinglePage } from 'cloudflare/pagination';
export declare class Locations extends APIResource {
    /**
     * Creates a new Zero Trust Gateway location.
     */
    create(params: LocationCreateParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLocations>;
    /**
     * Updates a configured Zero Trust Gateway location.
     */
    update(locationId: string, params: LocationUpdateParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLocations>;
    /**
     * Fetches Zero Trust Gateway locations for an account.
     */
    list(params: LocationListParams, options?: Core.RequestOptions): Core.PagePromise<ZeroTrustGatewayLocationsSinglePage, ZeroTrustGatewayLocations>;
    /**
     * Deletes a configured Zero Trust Gateway location.
     */
    delete(locationId: string, params: LocationDeleteParams, options?: Core.RequestOptions): Core.APIPromise<LocationDeleteResponse>;
    /**
     * Fetches a single Zero Trust Gateway location.
     */
    get(locationId: string, params: LocationGetParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayLocations>;
}
export declare class ZeroTrustGatewayLocationsSinglePage extends SinglePage<ZeroTrustGatewayLocations> {
}
export interface ZeroTrustGatewayLocations {
    id?: string;
    /**
     * True if the location is the default location.
     */
    client_default?: boolean;
    created_at?: string;
    /**
     * The DNS over HTTPS domain to send DNS requests to. This field is auto-generated
     * by Gateway.
     */
    doh_subdomain?: string;
    /**
     * True if the location needs to resolve EDNS queries.
     */
    ecs_support?: boolean;
    /**
     * IPV6 destination ip assigned to this location. DNS requests sent to this IP will
     * counted as the request under this location. This field is auto-generated by
     * Gateway.
     */
    ip?: string;
    /**
     * The name of the location.
     */
    name?: string;
    /**
     * A list of network ranges that requests from this location would originate from.
     */
    networks?: Array<ZeroTrustGatewayLocations.Network>;
    updated_at?: string;
}
export declare namespace ZeroTrustGatewayLocations {
    interface Network {
        /**
         * The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24.
         */
        network: string;
    }
}
export type LocationDeleteResponse = unknown | string;
export interface LocationCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the location.
     */
    name: string;
    /**
     * Body param: True if the location is the default location.
     */
    client_default?: boolean;
    /**
     * Body param: True if the location needs to resolve EDNS queries.
     */
    ecs_support?: boolean;
    /**
     * Body param: A list of network ranges that requests from this location would
     * originate from.
     */
    networks?: Array<LocationCreateParams.Network>;
}
export declare namespace LocationCreateParams {
    interface Network {
        /**
         * The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24.
         */
        network: string;
    }
}
export interface LocationUpdateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: The name of the location.
     */
    name: string;
    /**
     * Body param: True if the location is the default location.
     */
    client_default?: boolean;
    /**
     * Body param: True if the location needs to resolve EDNS queries.
     */
    ecs_support?: boolean;
    /**
     * Body param: A list of network ranges that requests from this location would
     * originate from.
     */
    networks?: Array<LocationUpdateParams.Network>;
}
export declare namespace LocationUpdateParams {
    interface Network {
        /**
         * The IPv4 address or IPv4 CIDR. IPv4 CIDRs are limited to a maximum of /24.
         */
        network: string;
    }
}
export interface LocationListParams {
    account_id: string;
}
export interface LocationDeleteParams {
    account_id: string;
}
export interface LocationGetParams {
    account_id: string;
}
export declare namespace Locations {
    export import ZeroTrustGatewayLocations = LocationsAPI.ZeroTrustGatewayLocations;
    export import LocationDeleteResponse = LocationsAPI.LocationDeleteResponse;
    export import ZeroTrustGatewayLocationsSinglePage = LocationsAPI.ZeroTrustGatewayLocationsSinglePage;
    export import LocationCreateParams = LocationsAPI.LocationCreateParams;
    export import LocationUpdateParams = LocationsAPI.LocationUpdateParams;
    export import LocationListParams = LocationsAPI.LocationListParams;
    export import LocationDeleteParams = LocationsAPI.LocationDeleteParams;
    export import LocationGetParams = LocationsAPI.LocationGetParams;
}
//# sourceMappingURL=locations.d.ts.map