import * as Core from 'cloudflaredev/core';
import { APIResource } from 'cloudflaredev/resource';
import * as ProxyEndpointsAPI from 'cloudflaredev/resources/zero-trust/gateway/proxy-endpoints';
import { SinglePage } from 'cloudflaredev/pagination';
export declare class ProxyEndpoints extends APIResource {
    /**
     * Creates a new Zero Trust Gateway proxy endpoint.
     */
    create(params: ProxyEndpointCreateParams, options?: Core.RequestOptions): Core.APIPromise<ProxyEndpoint>;
    /**
     * Fetches a single Zero Trust Gateway proxy endpoint.
     */
    list(params: ProxyEndpointListParams, options?: Core.RequestOptions): Core.PagePromise<ProxyEndpointsSinglePage, ProxyEndpoint>;
    /**
     * Deletes a configured Zero Trust Gateway proxy endpoint.
     */
    delete(proxyEndpointId: string, params: ProxyEndpointDeleteParams, options?: Core.RequestOptions): Core.APIPromise<ProxyEndpointDeleteResponse>;
    /**
     * Updates a configured Zero Trust Gateway proxy endpoint.
     */
    edit(proxyEndpointId: string, params: ProxyEndpointEditParams, options?: Core.RequestOptions): Core.APIPromise<ProxyEndpoint>;
    /**
     * Fetches all Zero Trust Gateway proxy endpoints for an account.
     */
    get(proxyEndpointId: string, params: ProxyEndpointGetParams, options?: Core.RequestOptions): Core.APIPromise<ProxyEndpoint>;
}
export declare class ProxyEndpointsSinglePage extends SinglePage<ProxyEndpoint> {
}
/**
 * The IPv4 CIDR or IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /109. IPv4
 * CIDRs are limited to a maximum of /25.
 */
export type GatewayIPs = string;
/**
 * The IPv4 CIDR or IPv6 CIDR. IPv6 CIDRs are limited to a maximum of /109. IPv4
 * CIDRs are limited to a maximum of /25.
 */
export type GatewayIPsParam = string;
export interface ProxyEndpoint {
    id?: string;
    created_at?: string;
    /**
     * A list of CIDRs to restrict ingress connections.
     */
    ips?: Array<GatewayIPs>;
    /**
     * The name of the proxy endpoint.
     */
    name?: string;
    /**
     * The subdomain to be used as the destination in the proxy client.
     */
    subdomain?: string;
    updated_at?: string;
}
export type ProxyEndpointDeleteResponse = unknown | string | null;
export interface ProxyEndpointCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: A list of CIDRs to restrict ingress connections.
     */
    ips: Array<GatewayIPsParam>;
    /**
     * Body param: The name of the proxy endpoint.
     */
    name: string;
}
export interface ProxyEndpointListParams {
    account_id: string;
}
export interface ProxyEndpointDeleteParams {
    account_id: string;
}
export interface ProxyEndpointEditParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: A list of CIDRs to restrict ingress connections.
     */
    ips?: Array<GatewayIPsParam>;
    /**
     * Body param: The name of the proxy endpoint.
     */
    name?: string;
}
export interface ProxyEndpointGetParams {
    account_id: string;
}
export declare namespace ProxyEndpoints {
    export import GatewayIPs = ProxyEndpointsAPI.GatewayIPs;
    export import ProxyEndpoint = ProxyEndpointsAPI.ProxyEndpoint;
    export import ProxyEndpointDeleteResponse = ProxyEndpointsAPI.ProxyEndpointDeleteResponse;
    export import ProxyEndpointsSinglePage = ProxyEndpointsAPI.ProxyEndpointsSinglePage;
    export import ProxyEndpointCreateParams = ProxyEndpointsAPI.ProxyEndpointCreateParams;
    export import ProxyEndpointListParams = ProxyEndpointsAPI.ProxyEndpointListParams;
    export import ProxyEndpointDeleteParams = ProxyEndpointsAPI.ProxyEndpointDeleteParams;
    export import ProxyEndpointEditParams = ProxyEndpointsAPI.ProxyEndpointEditParams;
    export import ProxyEndpointGetParams = ProxyEndpointsAPI.ProxyEndpointGetParams;
}
//# sourceMappingURL=proxy-endpoints.d.ts.map