/// <reference types="node" />
import { Buffer } from 'buffer';
import { SshMessage } from './sshMessage';
import { SshDataReader, SshDataWriter } from '../io/sshData';
export declare abstract class ConnectionMessage extends SshMessage {
}
export declare abstract class ChannelMessage extends ConnectionMessage {
    private recipientChannelValue?;
    get recipientChannel(): number | undefined;
    set recipientChannel(value: number | undefined);
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelOpenMessage extends ConnectionMessage {
    get messageType(): number;
    channelType?: string;
    private senderChannelValue?;
    get senderChannel(): number | undefined;
    set senderChannel(value: number | undefined);
    maxWindowSize?: number;
    maxPacketSize?: number;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelOpenConfirmationMessage extends ChannelMessage {
    get messageType(): number;
    senderChannel?: number;
    maxWindowSize?: number;
    maxPacketSize?: number;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare enum SshChannelOpenFailureReason {
    none = 0,
    administrativelyProhibited = 1,
    connectFailed = 2,
    unknownChannelType = 3,
    resourceShortage = 4
}
export declare class ChannelOpenFailureMessage extends ChannelMessage {
    get messageType(): number;
    reasonCode?: SshChannelOpenFailureReason;
    description?: string;
    language?: string;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelWindowAdjustMessage extends ChannelMessage {
    get messageType(): number;
    bytesToAdd?: number;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelDataMessage extends ChannelMessage {
    get messageType(): number;
    data?: Buffer;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelExtendedDataMessage extends ChannelMessage {
    get messageType(): number;
    dataTypeCode?: number;
    data?: Buffer;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelEofMessage extends ChannelMessage {
    get messageType(): number;
}
export declare class ChannelCloseMessage extends ChannelMessage {
    get messageType(): number;
}
export declare enum ChannelRequestType {
    command = "exec",
    shell = "shell",
    terminal = "pty-req",
    signal = "signal",
    exitSignal = "exit-signal",
    exitStatus = "exit-status"
}
export declare class ChannelRequestMessage extends ChannelMessage {
    constructor(requestType?: ChannelRequestType | string, wantReply?: boolean);
    get messageType(): number;
    requestType?: ChannelRequestType | string;
    wantReply: boolean;
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
}
export declare class CommandRequestMessage extends ChannelRequestMessage {
    command?: string;
    constructor();
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
    toString(): string;
}
export declare class ChannelSignalMessage extends ChannelRequestMessage {
    private signalValue?;
    private errorMessageValue?;
    private statusValue?;
    constructor();
    get signal(): string | undefined;
    set signal(value: string | undefined);
    get exitSignal(): string | undefined;
    set exitSignal(value: string | undefined);
    get errorMessage(): string | undefined;
    set errorMessage(value: string | undefined);
    get exitStatus(): number | undefined;
    set exitStatus(value: number | undefined);
    protected onRead(reader: SshDataReader): void;
    protected onWrite(writer: SshDataWriter): void;
}
export declare class ChannelSuccessMessage extends ChannelMessage {
    get messageType(): number;
}
export declare class ChannelFailureMessage extends ChannelMessage {
    get messageType(): number;
}
//# sourceMappingURL=connectionMessages.d.ts.map