import type { ServiceConfig } from '../config/types.js'; import type { HttpResponse, HttpRequest } from 'uWebSockets.js'; import type { Logger } from 'pino'; import type { ServiceManager } from './service-manager.js'; /** * 路由映射信息 */ interface RouteMapping { /** 服务配置 */ service: ServiceConfig; /** 目标后端地址 */ target: string; } /** * 管理处理器 * 处理所有管理 API 请求 */ export declare class AdminApiHandler { private config; private logger; private hostnameRoutes; private portRoutes; private serviceManager; /** 按服务名称索引的服务配置(懒初始化,因为构造时路由表可能尚未填充) */ private _serviceMap; /** 按服务名称索引的路由映射(懒初始化) */ private _routeMap; constructor(config: DynaPMConfig, logger: Logger, hostnameRoutes: Map, portRoutes: Map, serviceManager: ServiceManager); /** 获取(或首次构建)服务名称索引 */ private getServiceMap; /** 获取(或首次构建)路由映射索引 */ private getRouteMap; /** * 检查客户端 IP 是否在允许列表中 */ private isIpAllowed; /** * 检查认证令牌是否有效 */ private isAuthenticated; /** * 获取服务运行时长 */ private getServiceUptime; /** * 在所有路由表中查找服务 */ private findServiceMapping; /** * 处理管理 API 请求 */ handleAdminApi(res: HttpResponse, req: HttpRequest): void; /** * 获取服务列表 */ private getServicesList; /** * 获取服务详情 */ private getServiceDetail; /** * 停止服务 */ stopService(res: HttpResponse, serviceName: string): Promise; /** * 启动服务 */ startService(res: HttpResponse, serviceName: string): Promise; /** * 处理事件流(SSE) */ private handleEventStream; } /** * DynaPM 配置类型导入 */ interface DynaPMConfig { adminApi?: { enabled?: boolean; authToken?: string; allowedIps?: string[]; }; } export {};