/// <reference types="node" />
import { Buffer } from 'buffer';
import { SshMessage } from './sshMessage';
import { SshDataWriter, SshDataReader } from '../io/sshData';
export declare class KeyExchangeMessage extends SshMessage {
}
export declare class KeyExchangeInitMessage extends KeyExchangeMessage {
    get messageType(): number;
    cookie?: Buffer;
    keyExchangeAlgorithms?: string[];
    serverHostKeyAlgorithms?: string[];
    encryptionAlgorithmsClientToServer?: string[];
    encryptionAlgorithmsServerToClient?: string[];
    macAlgorithmsClientToServer?: string[];
    macAlgorithmsServerToClient?: string[];
    compressionAlgorithmsClientToServer?: string[];
    compressionAlgorithmsServerToClient?: string[];
    languagesClientToServer?: string[];
    languagesServerToClient?: string[];
    firstKexPacketFollows?: boolean;
    reserved?: number;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    static none: KeyExchangeInitMessage;
    private static CreateNone;
    get allowsNone(): boolean;
}
export declare class KeyExchangeDhInitMessage extends KeyExchangeMessage {
    get messageType(): number;
    e?: Buffer;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
}
export declare class KeyExchangeDhReplyMessage extends KeyExchangeMessage {
    get messageType(): number;
    hostKey?: Buffer;
    f?: Buffer;
    signature?: Buffer;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
}
export declare class NewKeysMessage extends KeyExchangeMessage {
    get messageType(): number;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
}
//# sourceMappingURL=kexMessages.d.ts.map