import * as node_ssh from "node-ssh";
import { CommandData, CommandResult } from "./typings";
export declare class IBMi {
    client: node_ssh.NodeSSH;
    currentHost: string;
    currentPort: number;
    currentUser: string;
    constructor();
    /**
     * @returns {Promise<{success: boolean, error?: any}>} Was succesful at connecting or not.
     */
    connect(connectionObject: node_ssh.Config): Promise<{
        success: boolean;
        error?: any;
    }>;
    isConnected(): boolean;
    sendQsh(options: CommandData): Promise<CommandResult>;
    /**
     * Send commands to pase through the SSH connection.
     * Commands sent here end up in the 'Code for IBM i' output channel.
     */
    sendCommand(options: CommandData): Promise<CommandResult>;
    end(): Promise<void>;
    uploadFiles(files: {
        local: string;
        remote: string;
    }[], options?: node_ssh.SSHPutFilesOptions): Promise<void>;
    downloadFile(localFile: string, remoteFile: string): Promise<void>;
    uploadDirectory(localDirectory: string, remoteDirectory: string, options?: node_ssh.SSHGetPutDirectoryOptions): Promise<void>;
    downloadDirectory(localDirectory: string, remoteDirectory: string, options?: node_ssh.SSHGetPutDirectoryOptions): Promise<void>;
}
