/// import type { $PromiseMaybe } from "@dweb-browser/helper/$PromiseMaybe.ts"; import { Mutex } from "@dweb-browser/helper/Mutex.ts"; import { Producer } from "@dweb-browser/helper/Producer.ts"; import { PromiseOut } from "@dweb-browser/helper/PromiseOut.ts"; import type { $BootstrapContext } from "./bootstrapContext.js"; import type { Ipc } from "./ipc/index.js"; import type { MICRO_MODULE_CATEGORY } from "./type/category.const.js"; import type { $DWEB_DEEPLINK, $IpcSupportProtocols, $MMID, $MicroModuleManifest, $MicroModuleRuntime } from "./types.js"; export declare abstract class MicroModule { #private; abstract manifest: $MicroModuleManifest; protected abstract createRuntime(context: $BootstrapContext): $PromiseMaybe; get console(): import("@dweb-browser/helper/logger.ts").Logger; toString(): string; get isRunning(): boolean; get runtime(): MicroModuleRuntime; bootstrap(bootstrapContext: $BootstrapContext): Promise; } export declare abstract class MicroModuleRuntime implements $MicroModuleRuntime { #private; abstract mmid: $MMID; abstract ipc_support_protocols: $IpcSupportProtocols; abstract dweb_deeplinks: $DWEB_DEEPLINK[]; abstract categories: MICRO_MODULE_CATEGORY[]; abstract dir: $MicroModuleRuntime["dir"]; abstract lang: $MicroModuleRuntime["lang"]; abstract name: $MicroModuleRuntime["name"]; abstract short_name: $MicroModuleRuntime["short_name"]; abstract description: $MicroModuleRuntime["description"]; abstract icons: $MicroModuleRuntime["icons"]; abstract screenshots: $MicroModuleRuntime["screenshots"]; abstract display: $MicroModuleRuntime["display"]; abstract orientation: $MicroModuleRuntime["orientation"]; abstract theme_color: $MicroModuleRuntime["theme_color"]; abstract background_color: $MicroModuleRuntime["background_color"]; abstract shortcuts: $MicroModuleRuntime["shortcuts"]; abstract bootstrapContext: $BootstrapContext; abstract microModule: MicroModule; protected abstract _bootstrap(): unknown; protected abstract _shutdown(): unknown; private readonly stateLock; private state; protected connectionLinks: Set; get connectedIpcs(): ReadonlySet; protected connectionMap: Map<`${string}.dweb`, PromiseOut>; get console(): import("@dweb-browser/helper/logger.ts").Logger; /** * 给内部程序自己使用的 onConnect,外部与内部建立连接时使用 * 因为 NativeMicroModule 的内部程序在这里编写代码,所以这里会提供 onConnect 方法 * 如果时 JsMicroModule 这个 onConnect 就是写在 WebWorker 那边了 */ onConnect(name: string): { readonly name: string; readonly producer: Producer; toString(): string; readonly input: { "__#6@#cb"?: ((event: { readonly data: Ipc; readonly producer: Producer; toString(): string; "__#5@#job": PromiseOut; readonly job: Promise; "__#5@#consumeTimes": number; readonly consumed: boolean; consume(): Ipc; "__#5@#stoped": boolean; readonly stoped: boolean; stopImmediatePropagation(): void; complete(): void; consumeMapNotNull(mapNotNull: (data: Ipc) => R | undefined): R | undefined; consumeFilter(filter: (data: Ipc) => boolean | undefined): R_1 | undefined; "__#5@#emitLock": Mutex; emitBy(consumer: any): Promise | undefined; "inspect.custom"(): string; }) => unknown) | undefined; close(): void; collect(cb: (event: { readonly data: Ipc; readonly producer: Producer; toString(): string; "__#5@#job": PromiseOut; readonly job: Promise; "__#5@#consumeTimes": number; readonly consumed: boolean; consume(): Ipc; "__#5@#stoped": boolean; readonly stoped: boolean; stopImmediatePropagation(): void; complete(): void; consumeMapNotNull(mapNotNull: (data: Ipc) => R_2 | undefined): R_2 | undefined; consumeFilter(filter: (data: Ipc) => boolean | undefined): R_1_1 | undefined; "__#5@#emitLock": Mutex; emitBy(consumer: any): Promise | undefined; "inspect.custom"(): string; }) => unknown): void; emit(event: { readonly data: Ipc; readonly producer: Producer; toString(): string; "__#5@#job": PromiseOut; readonly job: Promise; "__#5@#consumeTimes": number; readonly consumed: boolean; consume(): Ipc; "__#5@#stoped": boolean; readonly stoped: boolean; stopImmediatePropagation(): void; complete(): void; consumeMapNotNull(mapNotNull: (data: Ipc) => R_3 | undefined): R_3 | undefined; consumeFilter(filter: (data: Ipc) => boolean | undefined): R_1_2 | undefined; "__#5@#emitLock": Mutex; emitBy(consumer: any): Promise | undefined; "inspect.custom"(): string; }): Promise; }; "__#7@#started": boolean; readonly started: boolean; startingBuffers: Set<{ readonly data: Ipc; readonly producer: Producer; toString(): string; "__#5@#job": PromiseOut; readonly job: Promise; "__#5@#consumeTimes": number; readonly consumed: boolean; consume(): Ipc; "__#5@#stoped": boolean; readonly stoped: boolean; stopImmediatePropagation(): void; complete(): void; consumeMapNotNull(mapNotNull: (data: Ipc) => R_4 | undefined): R_4 | undefined; consumeFilter(filter: (data: Ipc) => boolean | undefined): R_1_3 | undefined; "__#5@#emitLock": Mutex; emitBy(consumer: any): Promise | undefined; "inspect.custom"(): string; }> | null; "__#7@#errorCatcher": PromiseOut; "__#7@#start"(): void; collect(collector: (event: { readonly data: Ipc; readonly producer: Producer; toString(): string; "__#5@#job": PromiseOut; readonly job: Promise; "__#5@#consumeTimes": number; readonly consumed: boolean; consume(): Ipc; "__#5@#stoped": boolean; readonly stoped: boolean; stopImmediatePropagation(): void; complete(): void; consumeMapNotNull(mapNotNull: (data: Ipc) => R_5 | undefined): R_5 | undefined; consumeFilter(filter: (data: Ipc) => boolean | undefined): R_1_4 | undefined; "__#5@#emitLock": Mutex; emitBy(consumer: any): Promise | undefined; "inspect.custom"(): string; }) => void): void; mapNotNull(transform: (value: Ipc) => R_2 | undefined): (cb: import("@dweb-browser/helper/createSignal.js").$Callback<[R_2]>) => import("@dweb-browser/helper/createSignal.js").$OffListener; "__#7@#destroySignal": import("@dweb-browser/helper/createSignal.js").Signal>; onDestroy: (cb: import("@dweb-browser/helper/createSignal.js").$Callback<[], unknown>) => import("@dweb-browser/helper/createSignal.js").$OffListener; close(cause?: string | undefined): void; "inspect.custom"(): string; }; get isRunning(): boolean; bootstrap(): Promise; private get beforeShotdownPo(); get onBeforeShutdown(): (cb: import("@dweb-browser/helper/createSignal.js").$Callback<[unknown]>) => void; private get shutdownPo(); get onShutdown(): (cb: import("@dweb-browser/helper/createSignal.js").$Callback<[unknown]>) => void; shutdown(): Promise; /** * 尝试连接到指定对象 */ connect(mmid: $MMID, auto_start?: boolean): Promise; /** * 收到一个连接,触发相关事件 */ beConnect(ipc: Ipc, _reason?: Request): Promise; getConnected(mmid: $MMID): Promise | undefined; protected _getIpcForFetch(url: URL): Promise; protected _nativeRequest(parsed_url: URL, request_init: RequestInit): Promise; /** * 同 ipc.request,只不过使用 fetch 接口的输入参数 * 与 nativeFetch 的差别在于 * nativeFetch 返回 Response * nativeRequest 返回 IpcResponse */ nativeRequest(url: RequestInfo | URL, init?: RequestInit): Promise; protected _nativeFetch(url: RequestInfo | URL, init?: RequestInit): Promise; /** * 模拟fetch的返回值 * 这里的做fetch的时候需要先connect */ nativeFetch(url: RequestInfo | URL, init?: RequestInit): Promise & { jsonlines(): Promise>; stream(): Promise>; number(): Promise; ok(): Promise; text(): Promise; binary(): Promise; boolean(): Promise; object(): Promise; }; requestDwebPermissions(permissions: string): Promise; private get _manifest(); toManifest(): { mmid: `${string}.dweb`; name: string; short_name: string | undefined; ipc_support_protocols: $IpcSupportProtocols; dweb_deeplinks: `dweb:${string}`[]; categories: MICRO_MODULE_CATEGORY[]; dir: import("./types.js").TextDirectionType | undefined; lang: string | undefined; description: string | undefined; icons: import("./types.js").ImageResource[] | undefined; screenshots: import("./types.js").ImageResource[] | undefined; display: import("./types.js").DisplayModeType | undefined; orientation: "any" | "landscape" | "landscape-primary" | "landscape-secondary" | "natural" | "portrait" | "portrait-primary" | "portrait-secondary" | undefined; theme_color: string | undefined; background_color: string | undefined; shortcuts: import("./types.js").ShortcutItem[] | undefined; }; } //# sourceMappingURL=MicroModule.d.ts.map