/// <reference types="node" />
import { Readable as NodeReadableNative, ReadableOptions as NodeReadableOptions } from 'stream';
import { ReadableStream } from 'web-streams-polyfill';
import { Readable } from '../types';
/**
 * Validates if passed object is either browser's ReadableStream
 * or Node's Readable.
 *
 * @param entry
 */
export declare function isReadable(entry: unknown): entry is Readable;
export declare function isReadableStream(entry: unknown): entry is ReadableStream;
export declare function isNodeReadable(entry: unknown): entry is NodeReadableNative;
/**
 * Function that converts Node's Readable into WHATWG ReadableStream
 *
 * Taken over from https://github.com/gwicke/node-web-streams/blob/master/lib/conversions.js
 * Because it uses forked web-streams-polyfill that are outdated.
 *
 * @author https://github.com/gwicke
 * @licence Apache License 2.0 https://github.com/gwicke/node-web-streams/blob/master/LICENSE
 * @param nodeStream
 */
export declare function readableNodeToWeb(nodeStream: NodeReadableNative): ReadableStream<Uint8Array>;
/**
 * Function that converts WHATWG ReadableStream into Node's Readable
 *
 * Taken over from https://github.com/gwicke/node-web-streams/blob/master/lib/conversions.js
 * Because it uses forked web-streams-polyfill that is outdated.
 *
 * **Warning!**
 * If you want to use this function in browser you have to polyfill `stream` package with your bundler.
 *
 * @author https://github.com/gwicke
 * @licence Apache License 2.0 https://github.com/gwicke/node-web-streams/blob/master/LICENSE
 * @param webStream
 * @param options
 */
export declare function readableWebToNode(webStream: ReadableStream<unknown>, options?: NodeReadableOptions): NodeReadableNative;
export declare function normalizeToReadableStream(stream: Readable): ReadableStream;
