import { type BytesView } from "@zwave-js/shared";
import { ESPHomeMessage } from "../ESPHomeMessage.js";
export interface ESPHomeMessageParserOptions {
    /**
     * When true, parse Noise-decrypted data format: [2-byte BE type][2-byte BE len][payload]
     * When false (default), parse plaintext frame format: [0x00][VarInt...][payload]
     */
    noiseMode?: boolean;
}
/**
 * Transform stream that parses ESPHome messages.
 * Input: Raw BytesView chunks (plaintext) or decrypted data (noise mode)
 * Output: ESPHomeMessage instances
 *
 * Supports two modes:
 * - Plaintext (default): Parses frames with format [0x00][VarInt size][VarInt type][payload]
 * - Noise mode: Parses decrypted data with format [2-byte BE type][2-byte BE len][payload]
 */
export declare class ESPHomeMessageParser extends TransformStream<BytesView, ESPHomeMessage> {
    constructor(options?: ESPHomeMessageParserOptions);
}
//# sourceMappingURL=ESPHomeMessageParser.d.ts.map