import { Client } from 'ssh2'; import { Server } from 'net'; import type { SSHConfig } from '../types/ssh.js'; export interface TunnelInfo { /** 本地监听端口 */ localPort: number; /** 远程目标主机 */ remoteHost: string; /** 远程目标端口 */ remotePort: number; /** SSH 客户端实例 */ client: Client; /** 本地转发服务 */ server: Server; /** 隧道名称(通常与数据库连接名称一致) */ name: string; } /** * SSH 隧道服务 * 管理 SSH 连接和端口转发 */ export declare class SSHTunnelService { private tunnels; /** * 创建 SSH 隧道 * @param name 隧道名称(通常是数据库连接名称) * @param sshConfig SSH 配置 * @param remoteHost 目标数据库主机 * @param remotePort 目标数据库端口 * @returns 本地监听端口 */ createTunnel(name: string, sshConfig: SSHConfig, remoteHost: string, remotePort: number): Promise; /** * 关闭指定隧道 */ closeTunnel(name: string): Promise; /** * 关闭所有隧道 */ closeAll(): Promise; /** * 获取所有活跃隧道信息 */ getTunnels(): TunnelInfo[]; /** * 检查隧道底层 SSH 连接和本地转发服务是否仍然存活 */ private isTunnelAlive; /** * 查找可用的本地端口 */ private findAvailablePort; } export declare const sshTunnelService: SSHTunnelService; //# sourceMappingURL=ssh-tunnel.d.ts.map