/// import type { $PromiseMaybe } from "@dweb-browser/helper/$PromiseMaybe.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(): any; 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(): any; /** * 给内部程序自己使用的 onConnect,外部与内部建立连接时使用 * 因为 NativeMicroModule 的内部程序在这里编写代码,所以这里会提供 onConnect 方法 * 如果时 JsMicroModule 这个 onConnect 就是写在 WebWorker 那边了 */ onConnect(name: string): any; get isRunning(): boolean; bootstrap(): any; private get beforeShotdownPo(); get onBeforeShutdown(): any; private get shutdownPo(); get onShutdown(): any; shutdown(): any; /** * 尝试连接到指定对象 */ connect(mmid: $MMID, auto_start?: boolean): any; /** * 收到一个连接,触发相关事件 */ beConnect(ipc: Ipc, _reason?: Request): Promise; getConnected(mmid: $MMID): any; 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): any; 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