import { default as SSHConfig } from 'ssh2-promise/lib/sshConfig';
import { SSHResultType } from '../types';
export declare const SSH_Name = "SSH";
export declare class SSH {
    private readonly config;
    private ssh;
    private connected;
    private socket;
    private isSession;
    private currentCmd;
    constructor(config: SSHConfig);
    /**
     * 是否已经 SSH 连接到服务器
     *
     * @returns {boolean} true 已连接，false 未连接
     */
    get isConnected(): boolean;
    /**
     * SSH 连接服务器
     *
     * @returns {Promise<SSHResultType>} SSH 连接结果
     */
    connect(): Promise<SSHResultType>;
    /**
     * 断开与服务器的 SSH 连接
     *
     * @returns {Promise<SSHResultType>} 断开与服务器的 SSH 连接的结果
     */
    close(): Promise<SSHResultType>;
    /**
     * SSH 连接服务器后执行命令<br/>
     * 注意：如果未连接服务器，会返回失败结果，所以需要先调用 {@link connect} 方法连接服务器
     *
     * @param {string} cmd 需要执行的命令
     * @returns {Promise<SSHResultType>} 执行命令结果
     */
    exec(cmd: string): Promise<SSHResultType>;
    /**
     * 是否已经与服务器创建会话
     *
     * @returns {boolean} true 已创建会话，false 未创建会话
     */
    get isSessionOpen(): boolean;
    /**
     * 与服务器创建 Shell 会话
     *
     * @param {(data: string) => void} onData 服务器返回数据时的回调函数
     * @param {() => void} onClose 与服务器之间的 Shell 会话关闭时的回调函数
     * @returns {Promise<SSHResultType>} 创建会话结果
     */
    sessionOpen(onData: (data: string) => void, onClose: () => void): Promise<SSHResultType>;
    /**
     * 在与服务器创建的 Shell 会话中执行命令
     *
     * @param {string} cmd 需要执行的命令
     * @returns {Promise<SSHResultType>} 命令执行结果
     */
    sessionExec(cmd: string): Promise<SSHResultType>;
    /**
     * 关闭与服务器创建的 Shell 会话
     *
     * @returns {Promise<SSHResultType>} 关闭会话结果
     */
    sessionClose(): Promise<SSHResultType>;
}
