/** * Stream Utilities (shared base) * * Platform-independent helpers re-exported by both `utils.ts` (Node) and * `utils.browser.ts`. The two platform files supply the concrete * `createReadableFromArray`, `createTransform` and `consumers` bindings. */ import type { IReadable, ITransform } from "./types.js"; export interface UtilsDeps { createReadableFromArray: (data: T[], options?: { objectMode?: boolean; }) => IReadable; createTransform: (fn: (chunk: TIn) => TOut | undefined | Promise, options?: { objectMode?: boolean; }) => ITransform; consumers: { text: (stream: AsyncIterable) => Promise; json: (stream: AsyncIterable) => Promise; buffer: (stream: AsyncIterable) => Promise; }; } export declare function collect(stream: { [Symbol.asyncIterator](): AsyncIterator; }): Promise; export declare function createText(deps: UtilsDeps): (stream: { [Symbol.asyncIterator](): AsyncIterator; }) => Promise; export declare function createJson(deps: UtilsDeps): (stream: { [Symbol.asyncIterator](): AsyncIterator; }) => Promise; export declare function createBytes(deps: UtilsDeps): (stream: { [Symbol.asyncIterator](): AsyncIterator; }) => Promise; export declare function createFromString(deps: UtilsDeps): (str: string) => IReadable; export declare function createFromJSON(deps: UtilsDeps): (data: unknown) => IReadable; export declare function createFromBytes(deps: UtilsDeps): (data: Uint8Array) => IReadable; export declare function createTransformHelper(deps: UtilsDeps): (fn: (chunk: TIn) => TOut | Promise) => ITransform; export declare function createFilter(deps: UtilsDeps): (predicate: (chunk: T) => boolean | Promise) => ITransform; /** * Type guard for browser ReadableStream-like objects. * Re-exported from internal/type-guards for public API compatibility. */ export declare const isReadableStreamLike: (value: unknown) => value is { getReader: () => any; }; /** * Convert a browser ReadableStream to an AsyncIterable. * This is useful for consuming fetch response bodies in a streaming fashion. * * @example * ```ts * const response = await fetch(url); * for await (const chunk of readableStreamToAsyncIterable(response.body)) { * // process chunk * } * ``` */ export declare function readableStreamToAsyncIterable(stream: { getReader: () => any; }): AsyncGenerator;