/** * @author kuitos * @since 2019-05-16 */ import type { ImportEntryOpts } from 'import-html-entry'; import type { RegisterApplicationConfig, StartOpts, Parcel } from 'single-spa'; declare global { interface Window { __POWERED_BY_QIANKUN__?: boolean; __INJECTED_PUBLIC_PATH_BY_QIANKUN__?: string; __QIANKUN_DEVELOPMENT__?: boolean; Zone?: CallableFunction; } } export declare type ObjectType = Record; export declare type Entry = string | { scripts?: string[]; styles?: string[]; html?: string; }; export declare type HTMLContentRender = (props: { appContent: string; loading: boolean; }) => any; export declare type AppMetadata = { name: string; entry: Entry; }; export declare type LoadableApp = AppMetadata & { props?: T; } & ({ render: HTMLContentRender; } | { container: string | HTMLElement; }); export declare type RegistrableApp = LoadableApp & { loader?: (loading: boolean) => void; activeRule: RegisterApplicationConfig['activeWhen']; }; export declare type PrefetchStrategy = boolean | 'all' | string[] | ((apps: AppMetadata[]) => { criticalAppNames: string[]; minorAppsName: string[]; }); declare type QiankunSpecialOpts = { /** * @deprecated internal api, don't used it as normal, might be removed after next version */ $$cacheLifecycleByAppName?: boolean; prefetch?: PrefetchStrategy; sandbox?: boolean | { strictStyleIsolation?: boolean; experimentalStyleIsolation?: boolean; /** * @deprecated We use strict mode by default */ loose?: boolean; patchers?: Patcher[]; }; singular?: boolean | ((app: LoadableApp) => Promise); /** * skip some scripts or links intercept, like JSONP */ excludeAssetFilter?: (url: string) => boolean; globalContext?: typeof window; }; export declare type FrameworkConfiguration = QiankunSpecialOpts & ImportEntryOpts & StartOpts; export declare type LifeCycleFn = (app: LoadableApp, global: typeof window) => Promise; export declare type FrameworkLifeCycles = { beforeLoad?: LifeCycleFn | Array>; beforeMount?: LifeCycleFn | Array>; afterMount?: LifeCycleFn | Array>; beforeUnmount?: LifeCycleFn | Array>; afterUnmount?: LifeCycleFn | Array>; }; export declare type MicroApp = Parcel; export declare type Rebuilder = () => void; export declare type Freer = () => Rebuilder; export declare type Patcher = () => Freer; export declare enum SandBoxType { Proxy = "Proxy", Snapshot = "Snapshot", LegacyProxy = "LegacyProxy" } export declare type SandBox = { /** 沙箱的名字 */ name: string; /** 沙箱的类型 */ type: SandBoxType; /** 沙箱导出的代理实体 */ proxy: WindowProxy; /** 沙箱是否在运行中 */ sandboxRunning: boolean; /** latest set property */ latestSetProp?: PropertyKey | null; /** 启动沙箱 */ active: () => void; /** 关闭沙箱 */ inactive: () => void; }; export declare type OnGlobalStateChangeCallback = (state: Record, prevState: Record) => void; export declare type MicroAppStateActions = { onGlobalStateChange: (callback: OnGlobalStateChangeCallback, fireImmediately?: boolean) => void; setGlobalState: (state: Record) => boolean; offGlobalStateChange: () => boolean; }; export {};