import type { Ipc } from "../../ipc.js"; import type { IpcBodySender } from "./IpcBodySender.js"; import type { MetaBody } from "./MetaBody.js"; export declare abstract class IpcBody { static CACHE: { /** * 任意的 RAW 背后都会有一个 IpcBodySender/IpcBodyReceiver * 将它们缓存起来,那么使用这些 RAW 确保只拿到同一个 IpcBody,这对 RAW-Stream 很重要,流不可以被多次打开读取 */ raw_ipcBody_WMap: WeakMap, IpcBody>; /** * 每一个 metaBody 背后,都会有第一个 接收者IPC,这直接定义了它的应该由谁来接收这个数据, * 其它的 IPC 即便拿到了这个 metaBody 也是没有意义的,除非它是 INLINE */ streamId_receiverIpc_Map: Map; /** * 每一个 metaBody 背后,都会有一个 IpcBodySender, * 这里主要是存储 流,因为它有明确的 open/close 生命周期 */ streamId_ipcBodySender_Map: Map; }; abstract readonly metaBody: MetaBody; protected abstract _bodyHub: BodyHub; get raw(): $BodyData; u8a(): Promise; stream(): Promise>; text(): Promise; } export declare class BodyHub { readonly data: $BodyData; constructor(data: $BodyData); u8a?: Uint8Array; stream?: ReadableStream; text?: string; } export type $BodyData = Uint8Array | ReadableStream | string; //# sourceMappingURL=IpcBody.d.ts.map