import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as ProxyEndpointsAPI from 'cloudflare/resources/zero-trust/gateway/proxy-endpoints';
import { SinglePage } from 'cloudflare/pagination';
export declare class ProxyEndpoints extends APIResource {
    /**
     * Creates a new Zero Trust Gateway proxy endpoint.
     */
    create(params: ProxyEndpointCreateParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayProxyEndpoints>;
    /**
     * Fetches a single Zero Trust Gateway proxy endpoint.
     */
    list(params: ProxyEndpointListParams, options?: Core.RequestOptions): Core.PagePromise<ZeroTrustGatewayProxyEndpointsSinglePage, ZeroTrustGatewayProxyEndpoints>;
    /**
     * 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<ZeroTrustGatewayProxyEndpoints>;
    /**
     * Fetches all Zero Trust Gateway proxy endpoints for an account.
     */
    get(proxyEndpointId: string, params: ProxyEndpointGetParams, options?: Core.RequestOptions): Core.APIPromise<ZeroTrustGatewayProxyEndpoints>;
}
export declare class ZeroTrustGatewayProxyEndpointsSinglePage extends SinglePage<ZeroTrustGatewayProxyEndpoints> {
}
export interface ZeroTrustGatewayProxyEndpoints {
    id?: string;
    created_at?: string;
    /**
     * A list of CIDRs to restrict ingress connections.
     */
    ips?: Array<string>;
    /**
     * 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;
export interface ProxyEndpointCreateParams {
    /**
     * Path param:
     */
    account_id: string;
    /**
     * Body param: A list of CIDRs to restrict ingress connections.
     */
    ips: Array<string>;
    /**
     * Body param: The name of the proxy endpoint.
     */
    name: string;
    /**
     * Body param: The subdomain to be used as the destination in the proxy client.
     */
    subdomain?: 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<string>;
    /**
     * Body param: The name of the proxy endpoint.
     */
    name?: string;
    /**
     * Body param: The subdomain to be used as the destination in the proxy client.
     */
    subdomain?: string;
}
export interface ProxyEndpointGetParams {
    account_id: string;
}
export declare namespace ProxyEndpoints {
    export import ZeroTrustGatewayProxyEndpoints = ProxyEndpointsAPI.ZeroTrustGatewayProxyEndpoints;
    export import ProxyEndpointDeleteResponse = ProxyEndpointsAPI.ProxyEndpointDeleteResponse;
    export import ZeroTrustGatewayProxyEndpointsSinglePage = ProxyEndpointsAPI.ZeroTrustGatewayProxyEndpointsSinglePage;
    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