import * as plugins from '../plugins.js';
import * as authInterfaces from '../data/auth.js';
import type { IRemoteIngress, IRemoteIngressPerformanceConfig, IRemoteIngressStatus } from '../data/remoteingress.js';
/**
 * Create a new remote ingress edge registration.
 */
export interface IReq_CreateRemoteIngress extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateRemoteIngress> {
    method: 'createRemoteIngress';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        name: string;
        listenPorts?: number[];
        autoDerivePorts?: boolean;
        performance?: IRemoteIngressPerformanceConfig;
        tags?: string[];
    };
    response: {
        success: boolean;
        edge: IRemoteIngress;
    };
}
/**
 * Delete a remote ingress edge registration.
 */
export interface IReq_DeleteRemoteIngress extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteRemoteIngress> {
    method: 'deleteRemoteIngress';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
    };
    response: {
        success: boolean;
        message?: string;
    };
}
/**
 * Update a remote ingress edge registration.
 */
export interface IReq_UpdateRemoteIngress extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateRemoteIngress> {
    method: 'updateRemoteIngress';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
        name?: string;
        listenPorts?: number[];
        autoDerivePorts?: boolean;
        enabled?: boolean;
        performance?: IRemoteIngressPerformanceConfig;
        tags?: string[];
    };
    response: {
        success: boolean;
        edge: IRemoteIngress;
    };
}
/**
 * Regenerate the secret for a remote ingress edge.
 */
export interface IReq_RegenerateRemoteIngressSecret extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_RegenerateRemoteIngressSecret> {
    method: 'regenerateRemoteIngressSecret';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        id: string;
    };
    response: {
        success: boolean;
        secret: string;
    };
}
/**
 * Get all remote ingress edge registrations.
 */
export interface IReq_GetRemoteIngresses extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRemoteIngresses> {
    method: 'getRemoteIngresses';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
    };
    response: {
        edges: IRemoteIngress[];
    };
}
/**
 * Get runtime status of all remote ingress edges.
 */
export interface IReq_GetRemoteIngressStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRemoteIngressStatus> {
    method: 'getRemoteIngressStatus';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
    };
    response: {
        statuses: IRemoteIngressStatus[];
    };
}
/**
 * Get a connection token for a remote ingress edge.
 * The token is a single opaque base64url string that encodes hubHost, hubPort, edgeId, and secret.
 */
export interface IReq_GetRemoteIngressConnectionToken extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetRemoteIngressConnectionToken> {
    method: 'getRemoteIngressConnectionToken';
    request: {
        identity?: authInterfaces.IIdentity;
        apiToken?: string;
        edgeId: string;
        hubHost?: string;
    };
    response: {
        success: boolean;
        token?: string;
        message?: string;
    };
}
