///
import { DataStreamServerConnection } from "./DataStreamServer";
export * from './DataStreamServer';
export * from './DataStreamParser';
export declare type EventHandler = (message: Record) => void;
export declare type RequestHandler = (id: number, message: Record) => void;
export declare type ResponseHandler = (error: Error | undefined, status: number | undefined, message: Record) => void;
export declare type GlobalEventHandler = (connection: DataStreamServerConnection, message: Record) => void;
export declare type GlobalRequestHandler = (connection: DataStreamServerConnection, id: number, message: Record) => void;
export interface DataStreamProtocolHandler {
eventHandler?: Record;
requestHandler?: Record;
}
export declare namespace DataStream {
const VERSION = "1.0";
}
export declare enum Protocols {
CONTROL = "control",
TARGET_CONTROL = "targetControl",
DATA_SEND = "dataSend"
}
export declare enum Topics {
HELLO = "hello",
WHOAMI = "whoami",
OPEN = "open",
DATA = "data",
ACK = "ack",
CLOSE = "close"
}
export declare enum DataSendCloseReason {
NORMAL = 0,
NOT_ALLOWED = 1,
BUSY = 2,
CANCELLED = 3,
UNSUPPORTED = 4,
UNEXPECTED_FAILURE = 5,
TIMEOUT = 6
}
export declare type HDSFrame = {
header: Buffer;
cipheredPayload: Buffer;
plaintextPayload: Buffer;
authTag: Buffer;
};
export declare enum MessageType {
EVENT = 1,
REQUEST = 2,
RESPONSE = 3
}
export declare type DataStreamMessage = {
type: MessageType;
protocol: string;
topic: string;
id?: number;
status?: number;
message: Record;
};
export declare enum TransferTransportConfigurationTypes {
TRANSFER_TRANSPORT_CONFIGURATION = 1
}
export declare enum TransportTypeTypes {
TRANSPORT_TYPE = 1
}
export declare enum SetupDataStreamSessionTypes {
SESSION_COMMAND_TYPE = 1,
TRANSPORT_TYPE = 2,
CONTROLLER_KEY_SALT = 3
}
export declare enum SetupDataStreamWriteResponseTypes {
STATUS = 1,
TRANSPORT_TYPE_SESSION_PARAMETERS = 2,
ACCESSORY_KEY_SALT = 3
}
export declare enum TransportSessionConfiguration {
TCP_LISTENING_PORT = 1
}
export declare enum TransportType {
HOMEKIT_DATA_STREAM = 0
}
export declare enum SessionCommandType {
START_SESSION = 0
}
export declare enum DataStreamStatus {
SUCCESS = 0,
GENERIC_ERROR = 1,
BUSY = 2
}
//# sourceMappingURL=index.d.ts.map