import { type Express, type NextFunction, type Request, type Response } from 'express'; export interface CloudStatusEndpointOptions { joinFilePath: string; } /** Join info accepted by POST /api/cloud-status and persisted to the join file. */ export interface CloudStatusPayload { joinUrl: string; trayId?: string; controllerUrl?: string; webhookUrl?: string; runtime?: string; sliccVersion?: string; } /** * Reject non-loopback requests. The sandbox is a private execution boundary, * but defense in depth: someone might wire a port-forward and we want this * endpoint to be unreachable from the outside. * * Socket addresses may be IPv4-mapped IPv6 (`::ffff:127.0.0.1`); strip that * prefix then use the shared loopback hostname check. */ export declare function requireLoopback(req: Request, res: Response, next: NextFunction): void; export declare function registerCloudStatusEndpoint(app: Express, options: CloudStatusEndpointOptions): void;