///
import { EventEmitter, EventMap } from "../lib/EventEmitter";
import { Socket } from "net";
import { DataStreamMessage, HDSFrame } from "./index";
export declare enum ConnectionState {
UNINITIALIZED = 0,
READY = 1,
CLOSING = 2,
CLOSED = 3
}
export declare enum DataStreamConnectionEvents {
PAYLOAD = "raw-payload",
MESSAGE = "message",
CLOSED = "closed"
}
export interface DataStreamConnectionEventMap extends EventMap {
[DataStreamConnectionEvents.PAYLOAD]: (payload: Buffer) => void;
[DataStreamConnectionEvents.MESSAGE]: (message: DataStreamMessage) => void;
[DataStreamConnectionEvents.CLOSED]: () => void;
}
export declare abstract class DataStreamConnection extends EventEmitter {
private static readonly MAX_PAYLOAD_LENGTH;
protected readonly socket: Socket;
remoteAddress: string;
protected state: ConnectionState;
protected connected: boolean;
private encryptionKey?;
private decryptionKey?;
private encryptionNonce;
private readonly encryptionNonceBuffer;
private decryptionNonce;
private readonly decryptionNonceBuffer;
private frameBuffer?;
protected constructor(socket: Socket);
protected setKeys(encryptionKey: Buffer, decryptionKey: Buffer): void;
protected handleInitialization(firstFrame: HDSFrame): void;
protected handleData(data: Buffer): void;
protected decodeHDSFrames(data: Buffer): HDSFrame[];
decryptHDSFrame(frame: HDSFrame, keyOverwrite?: Buffer): boolean;
protected decodePayloads(frames: HDSFrame[]): DataStreamMessage[];
sendHDSFrame(header: Record, message: Record): void;
sendRawHDSFrame(payloadBuffer: Buffer): void;
close(): void;
protected onHAPSessionClosed(): void;
protected handleError(error: Error): void;
protected handleClose(): void;
}
//# sourceMappingURL=DataStreamConnection.d.ts.map