import { SshSession } from "./SshSession";
export declare class Shell {
    static readonly startCmdFlag = "@@START OF COMMAND@@";
    static readonly connRefusedFlag = "ECONNREFUSED";
    static readonly expiredPasswordFlag = "FOTS1668";
    static executeSsh(session: SshSession, command: string, stdoutHandler: (data: string) => void, removeExtraCharactersFromOutput?: boolean, useExecMode?: boolean): Promise<any>;
    /**
     * Execute a command using exec mode (no shell wrapping, faster)
     * @param session - SSH session
     * @param command - Command to execute
     * @param stdoutHandler - Handler for stdout data
     * @returns Promise with exit code
     */
    static executeExec(session: SshSession, command: string, stdoutHandler: (data: string) => void): Promise<number>;
    /**
     * Execute a command in a specific directory using exec mode
     * @param session - SSH session
     * @param command - Command to execute
     * @param cwd - Working directory
     * @param stdoutHandler - Handler for stdout data
     * @returns Promise with exit code
     */
    static executeExecCwd(session: SshSession, command: string, cwd: string, stdoutHandler: (data: string) => void): Promise<number>;
    /**
     * Handle SSH connection errors with appropriate error messages
     * @param err - The error object
     * @param hasAuthFailed - Flag indicating if authentication has failed
     * @param reject - Promise reject function
     */
    private static handleConnectionError;
    private static connect;
    static executeSshCwd(session: SshSession, command: string, cwd: string, stdoutHandler: (data: string) => void, removeExtraCharactersFromOutput?: boolean, useExecMode?: boolean): Promise<any>;
    static isConnectionValid(session: SshSession): Promise<boolean>;
    private static authenticationHandler;
}
//# sourceMappingURL=Shell.d.ts.map