import type { AppType, DocumentType, NextComponentType } from '../shared/lib/utils';
import type { ClientReferenceManifest } from '../build/webpack/plugins/flight-manifest-plugin';
import type { PageConfig, GetStaticPaths, GetServerSideProps, GetStaticProps } from '../types';
import type { RouteModule } from './route-modules/route-module';
import type { BuildManifest } from './get-page-files';
import type { DeepReadonly } from '../shared/lib/deep-readonly';
export type ManifestItem = {
id: number | string;
files: string[];
};
export type ReactLoadableManifest = {
[moduleId: string]: ManifestItem;
};
/**
* This manifest prevents removing server rendered tags after client
* navigation. This is only needed under `Pages dir && Production && Webpack`.
* @see https://github.com/vercel/next.js/pull/72959
*/
export type DynamicCssManifest = string[];
/**
* A manifest entry type for the react-loadable-manifest.json.
*
* The whole manifest.json is a type of `Record`
* where pathname is a string-based key points to the path of the page contains
* each dynamic imports.
*/
export interface LoadableManifest {
[k: string]: {
id: string | number;
files: string[];
};
}
export type LoadComponentsReturnType = {
Component: NextComponentType;
pageConfig: PageConfig;
buildManifest: DeepReadonly;
subresourceIntegrityManifest?: DeepReadonly>;
reactLoadableManifest: DeepReadonly;
dynamicCssManifest?: DeepReadonly;
clientReferenceManifest?: DeepReadonly;
serverActionsManifest?: any;
Document: DocumentType;
App: AppType;
getStaticProps?: GetStaticProps;
getStaticPaths?: GetStaticPaths;
getServerSideProps?: GetServerSideProps;
ComponentMod: NextModule;
routeModule: RouteModule;
isAppPath?: boolean;
page: string;
multiZoneDraftMode?: boolean;
};
/**
* Load manifest file with retries, defaults to 3 attempts.
*/
export declare function loadManifestWithRetries(manifestPath: string, attempts?: number): Promise>;
/**
* Load manifest file with retries, defaults to 3 attempts, or return undefined.
*/
export declare function tryLoadManifestWithRetries(manifestPath: string, attempts?: number): Promise | undefined>;
/**
* Load manifest file with retries, defaults to 3 attempts.
*/
export declare function evalManifestWithRetries(manifestPath: string, attempts?: number): Promise>;
declare function loadComponentsImpl({ distDir, page, isAppPath, isDev, sriEnabled, }: {
distDir: string;
page: string;
isAppPath: boolean;
isDev: boolean;
sriEnabled: boolean;
}): Promise>;
export declare const loadComponents: typeof loadComponentsImpl;
export {};