import { EventEmitter } from "events";
import { Channel } from "./Channel";
/**
 * Handles continuous RouterOS commands such as `/tool/torch` and listeners.
 * A paused stream remains logically open, but receives a fresh tagged channel
 * when it is resumed.
 */
export declare class RStream extends EventEmitter {
    private connector;
    private channel;
    private params;
    private callback?;
    private state;
    private trapped;
    private transition?;
    private debounceSendingEmptyData?;
    private shouldDebounceEmptyData;
    private currentSection;
    private currentSectionPacket;
    private sectionPacketSendingTimeout?;
    constructor(channel: Channel, params: string[], callback?: (err: Error | null, packet?: any, stream?: RStream) => void);
    data(callback: (err: Error | null, 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 cancelActiveChannel;
    private waitForChannelClose;
    private finish;
    private cancelTimers;
    private onStream;
    private onTrap;
    private trackTransition;
    private emitError;
    private errorMessage;
}
