import { SshService } from './sshService';
import { SshSession } from '../sshSession';
import { AuthenticationMessage } from '../messages/authenticationMessages';
import { CancellationToken } from 'vscode-jsonrpc';
import { KeyPair } from '../algorithms/publicKeyAlgorithm';
import { SshClientCredentials } from '../sshCredentials';
/**
 * Handles SSH protocol messages related to client authentication.
 */
export declare class AuthenticationService extends SshService {
    static readonly serviceName = "ssh-userauth";
    readonly publicKeyAlgorithmName: string;
    private clientAuthenticationMethods?;
    private currentRequestMessage?;
    private authenticationFailureCount;
    private readonly disposeCancellationSource;
    constructor(session: SshSession);
    handleMessage(message: AuthenticationMessage, cancellation?: CancellationToken): void | Promise<void>;
    private handleAuthenticationRequestMessage;
    private setCurrentRequest;
    private handlePublicKeyRequestMessage;
    private handlePasswordRequestMessage;
    private beginInteractiveAuthentication;
    private handleInfoRequestMessage;
    private handleInfoResponseMessage;
    private handleAuthenticating;
    private handleAuthenticationFailure;
    authenticateClient(credentials: SshClientCredentials, cancellation?: CancellationToken): Promise<void>;
    private requestUsernameAuthentication;
    requestPublicKeyAuthentication(username: string, key: KeyPair, cancellation?: CancellationToken): Promise<void>;
    requestPasswordAuthentication(username: string, password: string | null, cancellation?: CancellationToken): Promise<void>;
    private requestInteractiveAuthentication;
    private handleFailureMessage;
    private handleSuccessMessage;
    private createAuthenticationSignature;
    dispose(): void;
}
//# sourceMappingURL=authenticationService.d.ts.map