/** * Segment Resolution * * Extracted from createRouter closure. Contains all segment resolution functions * for both fresh (full match) and revalidation (partial match) paths. * * Functions receive a `deps` parameter for closure-bound helpers from createRouter. */ import type { ReactNode } from "react"; import type { EntryData } from "../server/context"; import type { HandlerContext, ResolvedSegment, ShouldRevalidateFn } from "../types"; import type { SegmentResolutionDeps, SegmentRevalidationResult, ActionContext } from "./types.js"; /** * Handle Response returns from handlers. * When a handler returns a Response (e.g., redirect), throw it to trigger * the short-circuit mechanism. Otherwise return the ReactNode. */ export declare function handleHandlerResult(result: ReactNode | Response | Promise | Promise): ReactNode; /** * Resolve loaders for an entry and emit segments. * Loaders are run lazily via ctx.use() and memoized for parallel execution. */ export declare function resolveLoaders(entry: EntryData, ctx: HandlerContext, belongsToRoute: boolean, deps: SegmentResolutionDeps, shortCodeOverride?: string): Promise; /** * Options for segment resolution. */ export interface ResolveSegmentOptions { /** When true, skip resolveLoaders() calls (used for pre-rendering) */ skipLoaders?: boolean; } /** * Resolve segments from EntryData. * Executes middlewares, loaders, parallels, and handlers in correct order. * Returns array: [main segment, ...orphan layout segments] */ export declare function resolveSegment(entry: EntryData, routeKey: string, params: Record, context: HandlerContext, loaderPromises: Map>, deps: SegmentResolutionDeps, isRouteEntry?: boolean, options?: ResolveSegmentOptions): Promise; /** * Resolve orphan layout with its middlewares, loaders, and parallels. */ export declare function resolveOrphanLayout(orphan: EntryData, params: Record, context: HandlerContext, loaderPromises: Map>, belongsToRoute: boolean, deps: SegmentResolutionDeps): Promise; /** * Resolve parallel EntryData with its loaders and slot handlers. */ export declare function resolveParallelEntry(parallelEntry: EntryData, params: Record, context: HandlerContext, belongsToRoute: boolean, parentShortCode: string, deps: SegmentResolutionDeps): Promise; /** * Wrapper that adds error boundary handling to segment resolution. */ export declare function resolveWithErrorHandling(entry: EntryData, routeKey: string, params: Record, context: HandlerContext, loaderPromises: Map>, resolveFn: () => Promise, deps: SegmentResolutionDeps, errorContext?: { env?: TEnv; isPartial?: boolean; requestStartTime?: number; }): Promise; /** * Resolve all segments for a route (used for single-cache-per-request pattern). */ export declare function resolveAllSegments(entries: EntryData[], routeKey: string, params: Record, context: HandlerContext, loaderPromises: Map>, deps: SegmentResolutionDeps, options?: ResolveSegmentOptions): Promise; /** * Resolve only loader segments for all entries (used when serving cached non-loader segments). */ export declare function resolveLoadersOnly(entries: EntryData[], context: HandlerContext, deps: SegmentResolutionDeps): Promise; /** * Resolve loaders with revalidation awareness (for partial rendering). * Returns both segments to render AND all matched segment IDs. */ export declare function resolveLoadersWithRevalidation(entry: EntryData, ctx: HandlerContext, belongsToRoute: boolean, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, routeKey: string, deps: SegmentResolutionDeps, actionContext?: ActionContext, shortCodeOverride?: string, stale?: boolean): Promise<{ segments: ResolvedSegment[]; matchedIds: string[]; }>; /** * Resolve only loader segments for all entries with revalidation logic. */ export declare function resolveLoadersOnlyWithRevalidation(entries: EntryData[], context: HandlerContext, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, routeKey: string, deps: SegmentResolutionDeps, actionContext?: ActionContext): Promise<{ segments: ResolvedSegment[]; matchedIds: string[]; }>; /** * Build a map of segment shortCode -> entry with revalidate functions. */ export declare function buildEntryRevalidateMap(entries: EntryData[]): Map[]; }>; /** * Resolve parallel segments with revalidation. */ export declare function resolveParallelSegmentsWithRevalidation(entry: EntryData, params: Record, context: HandlerContext, belongsToRoute: boolean, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, routeKey: string, deps: SegmentResolutionDeps, actionContext?: ActionContext, stale?: boolean): Promise; /** * Resolve entry handler (layout, cache, or route) with revalidation. */ export declare function resolveEntryHandlerWithRevalidation(entry: Exclude, params: Record, context: HandlerContext, belongsToRoute: boolean, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, routeKey: string, deps: SegmentResolutionDeps, actionContext?: ActionContext, stale?: boolean): Promise<{ segment: ResolvedSegment; matchedId: string; }>; /** * Resolve segments with revalidation awareness (for partial rendering). */ export declare function resolveSegmentWithRevalidation(entry: Exclude, routeKey: string, params: Record, context: HandlerContext, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, loaderPromises: Map>, deps: SegmentResolutionDeps, actionContext?: ActionContext, stale?: boolean): Promise; /** * Resolve orphan layout with revalidation. */ export declare function resolveOrphanLayoutWithRevalidation(orphan: EntryData, params: Record, context: HandlerContext, clientSegmentIds: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, routeKey: string, loaderPromises: Map>, belongsToRoute: boolean, deps: SegmentResolutionDeps, actionContext?: ActionContext, stale?: boolean): Promise; /** * Wrapper for segment resolution with revalidation that adds error boundary handling. */ export declare function resolveWithRevalidationErrorHandling(entry: EntryData, params: Record, resolveFn: () => Promise, deps: SegmentResolutionDeps, pathname?: string, errorContext?: { request: Request; url: URL; routeKey?: string; env?: TEnv; isPartial?: boolean; requestStartTime?: number; }): Promise; /** * Resolve all segments for a route with revalidation logic (for matchPartial). */ export declare function resolveAllSegmentsWithRevalidation(entries: EntryData[], routeKey: string, params: Record, context: HandlerContext, clientSegmentSet: Set, prevParams: Record, request: Request, prevUrl: URL, nextUrl: URL, loaderPromises: Map>, actionContext: ActionContext | undefined, interceptResult: { intercept: any; entry: EntryData; } | null, localRouteName: string, pathname: string, deps: SegmentResolutionDeps): Promise<{ segments: ResolvedSegment[]; matchedIds: string[]; }>; //# sourceMappingURL=segment-resolution.d.ts.map