import events = require("events");
import { MessageDescriptor } from "@selfage/message/descriptor";
import { Readable } from "stream";
export interface StreamMessageReader<T> {
    on(event: "data", listener: (message: T) => void): this;
    on(event: "end", listener: () => void): this;
}
export declare class StreamMessageReader<T> extends events {
    private source;
    private messageDescriptor;
    private bufferedJsonStr;
    constructor(source: Readable, messageDescriptor: MessageDescriptor<T>);
    start(): void;
    private collectChunkAndParse;
    private flushMessage;
}
