///
///
import type { LoadComponentsReturnType } from '../load-components';
import type { ServerRuntime, SizeLimit } from '../../../types';
import type { NextConfigComplete } from '../../server/config-shared';
import type { ClientReferenceManifest } from '../../build/webpack/plugins/flight-manifest-plugin';
import type { NextFontManifest } from '../../build/webpack/plugins/next-font-manifest-plugin';
import type { ParsedUrlQuery } from 'querystring';
import type { AppPageModule } from '../future/route-modules/app-page/module';
import type { SwrDelta } from '../lib/revalidate';
import type { LoadingModuleData } from '../../shared/lib/app-router-context.shared-runtime';
import s from 'next/dist/compiled/superstruct';
export type DynamicParamTypes = 'catchall' | 'catchall-intercepted' | 'optional-catchall' | 'dynamic' | 'dynamic-intercepted';
declare const dynamicParamTypesSchema: s.Struct<"d" | "c" | "ci" | "oc" | "di", {
d: "d";
c: "c";
ci: "ci";
oc: "oc";
di: "di";
}>;
export type DynamicParamTypesShort = s.Infer;
declare const segmentSchema: s.Struct;
export type Segment = s.Infer;
export declare const flightRouterStateSchema: s.Describe;
/**
* Router state
*/
export type FlightRouterState = [
segment: Segment,
parallelRoutes: {
[parallelRouterKey: string]: FlightRouterState;
},
url?: string | null,
refresh?: 'refetch' | 'refresh' | null,
isRootLayout?: boolean
];
/**
* Individual Flight response path
*/
export type FlightSegmentPath = any[] | [
segment: Segment,
parallelRouterKey: string,
segment: Segment,
parallelRouterKey: string,
segment: Segment,
parallelRouterKey: string
];
/**
* Represents a tree of segments and the Flight data (i.e. React nodes) that
* correspond to each one. The tree is isomorphic to the FlightRouterState;
* however in the future we want to be able to fetch arbitrary partial segments
* without having to fetch all its children. So this response format will
* likely change.
*/
export type CacheNodeSeedData = [
segment: Segment,
parallelRoutes: {
[parallelRouterKey: string]: CacheNodeSeedData | null;
},
node: React.ReactNode | null,
loading: LoadingModuleData
];
export type FlightDataPath = any[] | [
...FlightSegmentPath[],
Segment,
FlightRouterState,
CacheNodeSeedData,
// Can be null during prefetch if there's no loading component
React.ReactNode | null
];
/**
* The Flight response data
*/
export type FlightData = Array | string;
export type ActionResult = Promise;
export type NextFlightResponse = [buildId: string, flightData: FlightData];
export type ActionFlightResponse = [ActionResult, [buildId: string, flightData: FlightData | null]] | NextFlightResponse;
export interface RenderOptsPartial {
err?: Error | null;
dev?: boolean;
buildId: string;
basePath: string;
trailingSlash: boolean;
clientReferenceManifest?: ClientReferenceManifest;
supportsDynamicHTML: boolean;
runtime?: ServerRuntime;
serverComponents?: boolean;
enableTainting?: boolean;
assetPrefix?: string;
crossOrigin?: '' | 'anonymous' | 'use-credentials' | undefined;
nextFontManifest?: NextFontManifest;
isBot?: boolean;
incrementalCache?: import('../lib/incremental-cache').IncrementalCache;
isRevalidate?: boolean;
nextExport?: boolean;
nextConfigOutput?: 'standalone' | 'export';
appDirDevErrorLogger?: (err: any) => Promise;
originalPathname?: string;
isDraftMode?: boolean;
deploymentId?: string;
onUpdateCookies?: (cookies: string[]) => void;
loadConfig?: (phase: string, dir: string, customConfig?: object | null, rawConfig?: boolean, silent?: boolean) => Promise;
serverActions?: {
bodySizeLimit?: SizeLimit;
allowedOrigins?: string[];
};
params?: ParsedUrlQuery;
isPrefetch?: boolean;
experimental: {
ppr: boolean;
missingSuspenseWithCSRBailout: boolean;
swrDelta: SwrDelta | undefined;
};
postponed?: string;
/**
* When true, only the skeleton of the PPR page will be rendered. This will
* also enable other debugging features such as logging.
*/
isDebugPPRSkeleton?: boolean;
isStaticGeneration?: boolean;
}
export type RenderOpts = LoadComponentsReturnType & RenderOptsPartial;
export {};