/// import { EventEmitter } from 'events'; import * as net from 'net'; import SSH2Promise from './index'; import TunnelConfig from './tunnelConfig'; import { ClientChannel, ExecOptions, SFTPWrapper, ShellOptions } from 'ssh2'; import { Server } from "net"; import SSHConfig from './sshConfig'; export default class SSHConnection extends EventEmitter { __sshTunnels: Array; config: SSHConfig; private activeTunnels; private __$connectPromise; private __retries; private __err; private __sftp; private __x11; private sshConnection; constructor(options: SSHConfig); /** * Emit message on this channel * @param {*} channel * @param {*} status * @param {*} payload */ emit(channel: string, status: string, payload?: any): boolean; /** * Get shell socket */ shell(options?: ShellOptions): Promise; /** * Get a sftp session */ sftp(createNew: boolean): Promise; /** * Get a subsys */ subsys(cmd: string): Promise; /** * Spawn a command */ spawn(cmd: string, params?: Array, options?: ExecOptions): Promise; /** * Exec a command */ exec(cmd: string, params?: Array, options?: ExecOptions): Promise; /** * Forward out */ forwardOut(srcIP: string, srcPort: number, destIP: string, destPort: number): Promise; /** * Get a Socks Port */ getSocksPort(localPort: number): Promise; /** * Get a X11 port */ x11(cmd: string): Promise; /** * Close SSH Connection */ close(): Promise; /** * Connect the SSH Connection */ connect(c?: SSHConfig): Promise; /** * Get existing tunnel by name */ getTunnel(name: string): TunnelConfig & { server: net.Server; }; /** * Add new tunnel if not exist */ addTunnel(tunnelConfig: TunnelConfig): Promise; /** * Close the tunnel */ closeTunnel(name?: string): Promise; }