import { APIResource } from "../../../../core/resource.mjs";
import * as ConfigurationsAPI from "./configurations.mjs";
import { BaseConfigurations, ConfigurationGetParams, ConfigurationGetResponse, ConfigurationUpdateParams, ConfigurationUpdateResponse, Configurations } from "./configurations.mjs";
import * as ConnectionsAPI from "./connections.mjs";
import { BaseConnections, ConnectionGetParams, ConnectionGetResponse, ConnectionGetResponsesSinglePage, Connections } from "./connections.mjs";
import * as ConnectorsAPI from "./connectors.mjs";
import { BaseConnectors, ConnectorGetParams, ConnectorGetResponse, Connectors } from "./connectors.mjs";
import * as FailoverAPI from "./failover.mjs";
import { BaseFailover, Failover, FailoverUpdateParams, FailoverUpdateResponse } from "./failover.mjs";
import * as TokenAPI from "./token.mjs";
import { BaseToken, Token, TokenGetParams, TokenGetResponse } from "./token.mjs";
import { APIPromise } from "../../../../core/api-promise.mjs";
import { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../../../core/pagination.mjs";
import { RequestOptions } from "../../../../internal/request-options.mjs";
export declare class BaseWARPConnector extends APIResource {
    static readonly _key: readonly ['zeroTrust', 'tunnels', 'warpConnector'];
    /**
     * Creates a new Warp Connector Tunnel in an account.
     *
     * @example
     * ```ts
     * const warpConnector =
     *   await client.zeroTrust.tunnels.warpConnector.create({
     *     account_id: '699d98642c564d2e855e9661899b7252',
     *     name: 'blog',
     *   });
     * ```
     */
    create(params: WARPConnectorCreateParams, options?: RequestOptions): APIPromise<WARPConnectorCreateResponse>;
    /**
     * Lists and filters Warp Connector Tunnels in an account.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const warpConnectorListResponse of client.zeroTrust.tunnels.warpConnector.list(
     *   { account_id: '699d98642c564d2e855e9661899b7252' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(params: WARPConnectorListParams, options?: RequestOptions): PagePromise<WARPConnectorListResponsesV4PagePaginationArray, WARPConnectorListResponse>;
    /**
     * Deletes a Warp Connector Tunnel from an account.
     *
     * @example
     * ```ts
     * const warpConnector =
     *   await client.zeroTrust.tunnels.warpConnector.delete(
     *     'f70ff985-a4ef-4643-bbbc-4a0ed4fc8415',
     *     { account_id: '699d98642c564d2e855e9661899b7252' },
     *   );
     * ```
     */
    delete(tunnelID: string, params: WARPConnectorDeleteParams, options?: RequestOptions): APIPromise<WARPConnectorDeleteResponse>;
    /**
     * Updates an existing Warp Connector Tunnel.
     *
     * @example
     * ```ts
     * const response =
     *   await client.zeroTrust.tunnels.warpConnector.edit(
     *     'f70ff985-a4ef-4643-bbbc-4a0ed4fc8415',
     *     { account_id: '699d98642c564d2e855e9661899b7252' },
     *   );
     * ```
     */
    edit(tunnelID: string, params: WARPConnectorEditParams, options?: RequestOptions): APIPromise<WARPConnectorEditResponse>;
    /**
     * Fetches a single Warp Connector Tunnel.
     *
     * @example
     * ```ts
     * const warpConnector =
     *   await client.zeroTrust.tunnels.warpConnector.get(
     *     'f70ff985-a4ef-4643-bbbc-4a0ed4fc8415',
     *     { account_id: '699d98642c564d2e855e9661899b7252' },
     *   );
     * ```
     */
    get(tunnelID: string, params: WARPConnectorGetParams, options?: RequestOptions): APIPromise<WARPConnectorGetResponse>;
}
export declare class WARPConnector extends BaseWARPConnector {
    token: TokenAPI.Token;
    connections: ConnectionsAPI.Connections;
    connectors: ConnectorsAPI.Connectors;
    failover: FailoverAPI.Failover;
    configurations: ConfigurationsAPI.Configurations;
}
export type WARPConnectorListResponsesV4PagePaginationArray = V4PagePaginationArray<WARPConnectorListResponse>;
/**
 * A Warp Connector Tunnel that connects your origin to Cloudflare's edge.
 */
export interface WARPConnectorCreateResponse {
    /**
     * UUID of the tunnel.
     */
    id?: string;
    /**
     * Cloudflare account ID
     */
    account_tag?: string;
    /**
     * @deprecated This field will start returning an empty array. To fetch the
     * connections of a given tunnel, please use the dedicated endpoint
     * `/accounts/{account_id}/{tunnel_type}/{tunnel_id}/connections`
     */
    connections?: Array<WARPConnectorCreateResponse.Connection>;
    /**
     * Timestamp of when the tunnel established at least one connection to Cloudflare's
     * edge. If `null`, the tunnel is inactive.
     */
    conns_active_at?: string;
    /**
     * Timestamp of when the tunnel became inactive (no connections to Cloudflare's
     * edge). If `null`, the tunnel is active.
     */
    conns_inactive_at?: string;
    /**
     * Timestamp of when the resource was created.
     */
    created_at?: string;
    /**
     * Timestamp of when the resource was deleted. If `null`, the resource has not been
     * deleted.
     */
    deleted_at?: string;
    /**
     * Metadata associated with the tunnel.
     */
    metadata?: unknown;
    /**
     * A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * The status of the tunnel. Valid values are `inactive` (tunnel has never been
     * run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy
     * state), `healthy` (tunnel is active and able to serve traffic), or `down`
     * (tunnel can not serve traffic as it has no connections to the Cloudflare Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * The type of tunnel.
     */
    tun_type?: 'cfd_tunnel' | 'warp_connector' | 'warp' | 'magic' | 'ip_sec' | 'gre' | 'cni';
}
export declare namespace WARPConnectorCreateResponse {
    interface Connection {
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        id?: string;
        /**
         * UUID of the Cloudflare Tunnel connector.
         */
        client_id?: string;
        /**
         * The cloudflared version used to establish this connection.
         */
        client_version?: string;
        /**
         * The Cloudflare data center used for this connection.
         */
        colo_name?: string;
        /**
         * @deprecated This functionality has been removed. The is_pending_reconnect field
         * will now always report false.
         */
        is_pending_reconnect?: boolean;
        /**
         * Timestamp of when the connection was established.
         */
        opened_at?: string;
        /**
         * The public IP address of the host running cloudflared.
         */
        origin_ip?: string;
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        uuid?: string;
    }
}
/**
 * A Warp Connector Tunnel that connects your origin to Cloudflare's edge.
 */
export interface WARPConnectorListResponse {
    /**
     * UUID of the tunnel.
     */
    id?: string;
    /**
     * Cloudflare account ID
     */
    account_tag?: string;
    /**
     * @deprecated This field will start returning an empty array. To fetch the
     * connections of a given tunnel, please use the dedicated endpoint
     * `/accounts/{account_id}/{tunnel_type}/{tunnel_id}/connections`
     */
    connections?: Array<WARPConnectorListResponse.Connection>;
    /**
     * Timestamp of when the tunnel established at least one connection to Cloudflare's
     * edge. If `null`, the tunnel is inactive.
     */
    conns_active_at?: string;
    /**
     * Timestamp of when the tunnel became inactive (no connections to Cloudflare's
     * edge). If `null`, the tunnel is active.
     */
    conns_inactive_at?: string;
    /**
     * Timestamp of when the resource was created.
     */
    created_at?: string;
    /**
     * Timestamp of when the resource was deleted. If `null`, the resource has not been
     * deleted.
     */
    deleted_at?: string;
    /**
     * Metadata associated with the tunnel.
     */
    metadata?: unknown;
    /**
     * A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * The status of the tunnel. Valid values are `inactive` (tunnel has never been
     * run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy
     * state), `healthy` (tunnel is active and able to serve traffic), or `down`
     * (tunnel can not serve traffic as it has no connections to the Cloudflare Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * The type of tunnel.
     */
    tun_type?: 'cfd_tunnel' | 'warp_connector' | 'warp' | 'magic' | 'ip_sec' | 'gre' | 'cni';
}
export declare namespace WARPConnectorListResponse {
    interface Connection {
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        id?: string;
        /**
         * UUID of the Cloudflare Tunnel connector.
         */
        client_id?: string;
        /**
         * The cloudflared version used to establish this connection.
         */
        client_version?: string;
        /**
         * The Cloudflare data center used for this connection.
         */
        colo_name?: string;
        /**
         * @deprecated This functionality has been removed. The is_pending_reconnect field
         * will now always report false.
         */
        is_pending_reconnect?: boolean;
        /**
         * Timestamp of when the connection was established.
         */
        opened_at?: string;
        /**
         * The public IP address of the host running cloudflared.
         */
        origin_ip?: string;
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        uuid?: string;
    }
}
/**
 * A Warp Connector Tunnel that connects your origin to Cloudflare's edge.
 */
export interface WARPConnectorDeleteResponse {
    /**
     * UUID of the tunnel.
     */
    id?: string;
    /**
     * Cloudflare account ID
     */
    account_tag?: string;
    /**
     * @deprecated This field will start returning an empty array. To fetch the
     * connections of a given tunnel, please use the dedicated endpoint
     * `/accounts/{account_id}/{tunnel_type}/{tunnel_id}/connections`
     */
    connections?: Array<WARPConnectorDeleteResponse.Connection>;
    /**
     * Timestamp of when the tunnel established at least one connection to Cloudflare's
     * edge. If `null`, the tunnel is inactive.
     */
    conns_active_at?: string;
    /**
     * Timestamp of when the tunnel became inactive (no connections to Cloudflare's
     * edge). If `null`, the tunnel is active.
     */
    conns_inactive_at?: string;
    /**
     * Timestamp of when the resource was created.
     */
    created_at?: string;
    /**
     * Timestamp of when the resource was deleted. If `null`, the resource has not been
     * deleted.
     */
    deleted_at?: string;
    /**
     * Metadata associated with the tunnel.
     */
    metadata?: unknown;
    /**
     * A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * The status of the tunnel. Valid values are `inactive` (tunnel has never been
     * run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy
     * state), `healthy` (tunnel is active and able to serve traffic), or `down`
     * (tunnel can not serve traffic as it has no connections to the Cloudflare Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * The type of tunnel.
     */
    tun_type?: 'cfd_tunnel' | 'warp_connector' | 'warp' | 'magic' | 'ip_sec' | 'gre' | 'cni';
}
export declare namespace WARPConnectorDeleteResponse {
    interface Connection {
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        id?: string;
        /**
         * UUID of the Cloudflare Tunnel connector.
         */
        client_id?: string;
        /**
         * The cloudflared version used to establish this connection.
         */
        client_version?: string;
        /**
         * The Cloudflare data center used for this connection.
         */
        colo_name?: string;
        /**
         * @deprecated This functionality has been removed. The is_pending_reconnect field
         * will now always report false.
         */
        is_pending_reconnect?: boolean;
        /**
         * Timestamp of when the connection was established.
         */
        opened_at?: string;
        /**
         * The public IP address of the host running cloudflared.
         */
        origin_ip?: string;
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        uuid?: string;
    }
}
/**
 * A Warp Connector Tunnel that connects your origin to Cloudflare's edge.
 */
export interface WARPConnectorEditResponse {
    /**
     * UUID of the tunnel.
     */
    id?: string;
    /**
     * Cloudflare account ID
     */
    account_tag?: string;
    /**
     * @deprecated This field will start returning an empty array. To fetch the
     * connections of a given tunnel, please use the dedicated endpoint
     * `/accounts/{account_id}/{tunnel_type}/{tunnel_id}/connections`
     */
    connections?: Array<WARPConnectorEditResponse.Connection>;
    /**
     * Timestamp of when the tunnel established at least one connection to Cloudflare's
     * edge. If `null`, the tunnel is inactive.
     */
    conns_active_at?: string;
    /**
     * Timestamp of when the tunnel became inactive (no connections to Cloudflare's
     * edge). If `null`, the tunnel is active.
     */
    conns_inactive_at?: string;
    /**
     * Timestamp of when the resource was created.
     */
    created_at?: string;
    /**
     * Timestamp of when the resource was deleted. If `null`, the resource has not been
     * deleted.
     */
    deleted_at?: string;
    /**
     * Metadata associated with the tunnel.
     */
    metadata?: unknown;
    /**
     * A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * The status of the tunnel. Valid values are `inactive` (tunnel has never been
     * run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy
     * state), `healthy` (tunnel is active and able to serve traffic), or `down`
     * (tunnel can not serve traffic as it has no connections to the Cloudflare Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * The type of tunnel.
     */
    tun_type?: 'cfd_tunnel' | 'warp_connector' | 'warp' | 'magic' | 'ip_sec' | 'gre' | 'cni';
}
export declare namespace WARPConnectorEditResponse {
    interface Connection {
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        id?: string;
        /**
         * UUID of the Cloudflare Tunnel connector.
         */
        client_id?: string;
        /**
         * The cloudflared version used to establish this connection.
         */
        client_version?: string;
        /**
         * The Cloudflare data center used for this connection.
         */
        colo_name?: string;
        /**
         * @deprecated This functionality has been removed. The is_pending_reconnect field
         * will now always report false.
         */
        is_pending_reconnect?: boolean;
        /**
         * Timestamp of when the connection was established.
         */
        opened_at?: string;
        /**
         * The public IP address of the host running cloudflared.
         */
        origin_ip?: string;
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        uuid?: string;
    }
}
/**
 * A Warp Connector Tunnel that connects your origin to Cloudflare's edge.
 */
export interface WARPConnectorGetResponse {
    /**
     * UUID of the tunnel.
     */
    id?: string;
    /**
     * Cloudflare account ID
     */
    account_tag?: string;
    /**
     * @deprecated This field will start returning an empty array. To fetch the
     * connections of a given tunnel, please use the dedicated endpoint
     * `/accounts/{account_id}/{tunnel_type}/{tunnel_id}/connections`
     */
    connections?: Array<WARPConnectorGetResponse.Connection>;
    /**
     * Timestamp of when the tunnel established at least one connection to Cloudflare's
     * edge. If `null`, the tunnel is inactive.
     */
    conns_active_at?: string;
    /**
     * Timestamp of when the tunnel became inactive (no connections to Cloudflare's
     * edge). If `null`, the tunnel is active.
     */
    conns_inactive_at?: string;
    /**
     * Timestamp of when the resource was created.
     */
    created_at?: string;
    /**
     * Timestamp of when the resource was deleted. If `null`, the resource has not been
     * deleted.
     */
    deleted_at?: string;
    /**
     * Metadata associated with the tunnel.
     */
    metadata?: unknown;
    /**
     * A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * The status of the tunnel. Valid values are `inactive` (tunnel has never been
     * run), `degraded` (tunnel is active and able to serve traffic but in an unhealthy
     * state), `healthy` (tunnel is active and able to serve traffic), or `down`
     * (tunnel can not serve traffic as it has no connections to the Cloudflare Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * The type of tunnel.
     */
    tun_type?: 'cfd_tunnel' | 'warp_connector' | 'warp' | 'magic' | 'ip_sec' | 'gre' | 'cni';
}
export declare namespace WARPConnectorGetResponse {
    interface Connection {
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        id?: string;
        /**
         * UUID of the Cloudflare Tunnel connector.
         */
        client_id?: string;
        /**
         * The cloudflared version used to establish this connection.
         */
        client_version?: string;
        /**
         * The Cloudflare data center used for this connection.
         */
        colo_name?: string;
        /**
         * @deprecated This functionality has been removed. The is_pending_reconnect field
         * will now always report false.
         */
        is_pending_reconnect?: boolean;
        /**
         * Timestamp of when the connection was established.
         */
        opened_at?: string;
        /**
         * The public IP address of the host running cloudflared.
         */
        origin_ip?: string;
        /**
         * UUID of the Cloudflare Tunnel connection.
         */
        uuid?: string;
    }
}
export interface WARPConnectorCreateParams {
    /**
     * Path param: Cloudflare account ID
     */
    account_id: string;
    /**
     * Body param: A user-friendly name for a tunnel.
     */
    name: string;
    /**
     * Body param: Indicates that the tunnel will be created to be highly available. If
     * omitted, defaults to false.
     */
    ha?: boolean;
}
export interface WARPConnectorListParams extends V4PagePaginationArrayParams {
    /**
     * Path param: Cloudflare account ID
     */
    account_id: string;
    /**
     * Query param
     */
    exclude_prefix?: string;
    /**
     * Query param: If provided, include only resources that were created (and not
     * deleted) before this time. URL encoded.
     */
    existed_at?: string;
    /**
     * Query param
     */
    include_prefix?: string;
    /**
     * Query param: If `true`, only include deleted tunnels. If `false`, exclude
     * deleted tunnels. If empty, all tunnels will be included.
     */
    is_deleted?: boolean;
    /**
     * Query param: A user-friendly name for the tunnel.
     */
    name?: string;
    /**
     * Query param: The status of the tunnel. Valid values are `inactive` (tunnel has
     * never been run), `degraded` (tunnel is active and able to serve traffic but in
     * an unhealthy state), `healthy` (tunnel is active and able to serve traffic), or
     * `down` (tunnel can not serve traffic as it has no connections to the Cloudflare
     * Edge).
     */
    status?: 'inactive' | 'degraded' | 'healthy' | 'down';
    /**
     * Query param: UUID of the tunnel.
     */
    uuid?: string;
    /**
     * Query param
     */
    was_active_at?: string;
    /**
     * Query param
     */
    was_inactive_at?: string;
}
export interface WARPConnectorDeleteParams {
    /**
     * Cloudflare account ID
     */
    account_id: string;
}
export interface WARPConnectorEditParams {
    /**
     * Path param: Cloudflare account ID
     */
    account_id: string;
    /**
     * Body param: A user-friendly name for a tunnel.
     */
    name?: string;
    /**
     * Body param: Sets the password required to run a locally-managed tunnel. Must be
     * at least 32 bytes and encoded as a base64 string.
     */
    tunnel_secret?: string;
}
export interface WARPConnectorGetParams {
    /**
     * Cloudflare account ID
     */
    account_id: string;
}
export declare namespace WARPConnector {
    export { type WARPConnectorCreateResponse as WARPConnectorCreateResponse, type WARPConnectorListResponse as WARPConnectorListResponse, type WARPConnectorDeleteResponse as WARPConnectorDeleteResponse, type WARPConnectorEditResponse as WARPConnectorEditResponse, type WARPConnectorGetResponse as WARPConnectorGetResponse, type WARPConnectorListResponsesV4PagePaginationArray as WARPConnectorListResponsesV4PagePaginationArray, type WARPConnectorCreateParams as WARPConnectorCreateParams, type WARPConnectorListParams as WARPConnectorListParams, type WARPConnectorDeleteParams as WARPConnectorDeleteParams, type WARPConnectorEditParams as WARPConnectorEditParams, type WARPConnectorGetParams as WARPConnectorGetParams, };
    export { Token as Token, BaseToken as BaseToken, type TokenGetResponse as TokenGetResponse, type TokenGetParams as TokenGetParams, };
    export { Connections as Connections, BaseConnections as BaseConnections, type ConnectionGetResponse as ConnectionGetResponse, type ConnectionGetResponsesSinglePage as ConnectionGetResponsesSinglePage, type ConnectionGetParams as ConnectionGetParams, };
    export { Connectors as Connectors, BaseConnectors as BaseConnectors, type ConnectorGetResponse as ConnectorGetResponse, type ConnectorGetParams as ConnectorGetParams, };
    export { Failover as Failover, BaseFailover as BaseFailover, type FailoverUpdateResponse as FailoverUpdateResponse, type FailoverUpdateParams as FailoverUpdateParams, };
    export { Configurations as Configurations, BaseConfigurations as BaseConfigurations, type ConfigurationUpdateResponse as ConfigurationUpdateResponse, type ConfigurationGetResponse as ConfigurationGetResponse, type ConfigurationUpdateParams as ConfigurationUpdateParams, type ConfigurationGetParams as ConfigurationGetParams, };
}
//# sourceMappingURL=warp-connector.d.mts.map