export { LazyBlob }; export { LazyFile }; export { isLazyBlob }; export { isLazyFile }; import type { MultipartReader } from './MultipartReader.js'; import type { FileMetadata, BlobMetadata } from '../../../shared/multipart/constants.js'; declare const LAZY_BLOB_BRAND: unique symbol; declare const LAZY_FILE_BRAND: unique symbol; declare function isLazyBlob(value: unknown): value is LazyBlob; declare function isLazyFile(value: unknown): value is LazyFile; /** Shared Blob implementation — subclasses only provide `stream()`. */ declare abstract class BaseStreamBlob implements Blob { abstract readonly size: number; abstract readonly type: string; abstract stream(): ReadableStream>; arrayBuffer(): Promise; bytes(): Promise>; text(): Promise; slice(start?: number, end?: number, contentType?: string): Blob; get [Symbol.toStringTag](): string; } /** * A Blob backed by a pull-based MultipartReader. * * `size` and `type` are available immediately from metadata. * Body data is pulled from the stream on demand — no background pump. * Each instance is **one-shot**: once consumed, further reads throw. */ declare class LazyBlob extends BaseStreamBlob { #private; readonly size: number; readonly type: string; readonly [LAZY_BLOB_BRAND] = true; constructor(reader: MultipartReader, metadata: BlobMetadata); stream(): ReadableStream>; } /** * A File implementation backed by a pull-based MultipartReader. * Extends LazyBlob with `name`, `lastModified`, and `webkitRelativePath`. */ declare class LazyFile extends LazyBlob implements File { readonly name: string; readonly lastModified: number; readonly webkitRelativePath: string; readonly [LAZY_FILE_BRAND] = true; constructor(reader: MultipartReader, metadata: FileMetadata); get [Symbol.toStringTag](): string; }