import type { ReadableStream } from 'node:stream/web';
/**
 * Check if error is related to stream cleanup operations.
 *
 * These errors are expected when calling reader.read() after releaseLock()
 * or when writing to already closed streams during cleanup:
 *
 * Invalid state: Releasing reader
 * Invalid state: The reader is not attached to a stream
 * Invalid state: Controller is already closed
 * Invalid state: WritableStream is closed
 */
export declare function isStreamReaderReleaseError(e: unknown): boolean;
export declare class DeferredReadableStream<T> {
    private transform;
    private writer;
    private sourceReader?;
    private sourceAttached;
    constructor();
    get stream(): ReadableStream<T>;
    get isSourceSet(): boolean;
    /**
     * Call once the actual source is ready.
     */
    setSource(source: ReadableStream<T>): void;
    private pump;
    /**
     * Detach the source stream and clean up resources.
     */
    detachSource(): Promise<void>;
}
//# sourceMappingURL=deferred_stream.d.ts.map