import { EventEmitter } from "events";
import { Channel } from "./Channel";
/**
 * RStream is used for handling continuous or long-lived data streams
 * from RouterOS, such as `/tool/torch`, `/ip/address/listen`, etc.
 * It can be paused, resumed, or stopped gracefully.
 */
export declare class RStream extends EventEmitter {
    private channel;
    private params;
    private callback;
    private debounceSendingEmptyData;
    private shouldDebounceEmptyData;
    private streaming;
    private pausing;
    private paused;
    private stopping;
    private stopped;
    private trapped;
    private currentSection;
    private forcelyStop;
    private currentSectionPacket;
    private sectionPacketSendingTimeout;
    constructor(channel: Channel, params: string[], callback?: (err: Error, packet?: any, stream?: RStream) => void);
    data(callback: (err: Error, packet?: any, stream?: RStream) => void): void;
    resume(): Promise<void>;
    pause(): Promise<void>;
    stop(pausing?: boolean): Promise<void>;
    close(): Promise<void>;
    start(): void;
    prepareDebounceEmptyData(): void;
    private onStream;
    private onTrap;
    private onDone;
}
