import { Injector } from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { GetRecoveryTokenOptions, Platform, ProfilesService, RecoveryToken } from 'tabby-core';
import { BaseTerminalTabComponent, Reconnectable } from 'tabby-terminal';
import { SSHService } from '../services/ssh.service';
import { KeyboardInteractivePrompt, SSHSession } from '../session/ssh';
import { SSHProfile } from '../api';
import { SSHShellSession } from '../session/shell';
import { SSHMultiplexerService } from '../services/sshMultiplexer.service';
/** @hidden */
export declare class SSHTabComponent extends BaseTerminalTabComponent<SSHProfile> implements Reconnectable {
    ssh: SSHService;
    private ngbModal;
    private profilesService;
    private sshMultiplexer;
    Platform: typeof Platform;
    sshSession: SSHSession | null;
    session: SSHShellSession | null;
    sftpPanelVisible: boolean;
    sftpPath: string;
    enableToolbar: boolean;
    activeKIPrompt: KeyboardInteractivePrompt | null;
    private reconnectOffered;
    constructor(injector: Injector, ssh: SSHService, ngbModal: NgbModal, profilesService: ProfilesService, sshMultiplexer: SSHMultiplexerService);
    ngOnInit(): void;
    protected onFrontendReady(): void;
    setupOneSession(injector: Injector, profile: SSHProfile, multiplex?: boolean): Promise<SSHSession>;
    protected attachSessionHandlers(): void;
    private initializeSessionMaybeMultiplex;
    initializeSession(): Promise<void>;
    getRecoveryToken(options?: GetRecoveryTokenOptions): Promise<RecoveryToken>;
    showPortForwarding(): void;
    reconnect(): Promise<void>;
    canClose(): Promise<boolean>;
    openSFTP(): Promise<void>;
    onClick(): void;
    protected isSessionExplicitlyTerminated(): boolean;
}
