export interface BackpressureSocket {
    readonly bufferedAmount: number;
    isOpen(): boolean;
}
export interface BackpressureSink {
    pause(): void;
    resume(): void;
}
export interface BackpressureOptions {
    highWaterBytes: number;
    lowWaterBytes: number;
    pollMs: number;
}
export declare class SocketBackpressure {
    private readonly socket;
    private readonly sink;
    private readonly options;
    private paused;
    private drainTimer;
    constructor(socket: BackpressureSocket, sink: BackpressureSink, options: BackpressureOptions);
    observe(): void;
    dispose(): void;
    private startDrainPoll;
    private stopDrainPoll;
    private tick;
}
