import type * as Genesis from '..'; import type { Renderer } from '../renderer'; import { type MF } from '.'; import { Base } from './base'; import { FileFetch, HttpFetch, NullFetch } from './remote-fetch'; type ManifestJson = Genesis.MFManifestJson; export declare class Remote extends Base { options: Genesis.MFRemote; ready: ReadyPromise; private remoteModule; private renderer?; private timer?; private already; private manifestJson; private clientManifestJson; private pollingStatus; private httpFetch; private fileFetch; private nullFetch; constructor(ssr: Genesis.SSR, mf: MF, options: Genesis.MFRemote); get request(): HttpFetch | FileFetch | NullFetch; get requestConfig(): any; get manifest(): Genesis.MFManifestJson; get clientPublicPath(): string; get writeDir(): any; init(renderer?: Renderer): Promise; getClientManifest(): Genesis.ClientManifest; fetch(postinstall?: boolean): Promise; getFullFile(filename: string): Genesis.MFRemote; download(manifest: ManifestJson): Promise; private downloadDts; private downloadZip; /** * 开始轮询 */ polling(): Promise; /** * 停止轮询 */ stopPolling(): Promise; destroy(): void; inject(): string; } export declare class RemoteGroup extends Base { private items; private injectSelf?; constructor(ssr: Genesis.SSR, mf: MF); inject(): string; init(...args: Parameters): Promise; fetch(name?: string): Promise; getClientManifest(name?: string): Genesis.ClientManifest[]; postinstall(): Promise; polling(): Promise; stopPolling(): Promise; } declare class ReadyPromise { /** * 执行完成 */ finish: (value: T) => void; /** * 等待执行完成 */ await: Promise; /** * 是否已经执行完成 */ finished: boolean; constructor(); get loading(): boolean; } export {};