/**
 * Intercept Resolution
 *
 * Extracted from createRouter closure. Contains intercept detection and resolution
 * functions for soft navigation (modals).
 */
import type { EntryData, InterceptEntry, InterceptSelectorContext } from "../server/context";
import type { HandlerContext, ResolvedSegment } from "../types";
import type { SegmentResolutionDeps } from "./types.js";
/**
 * Check if an intercept's when conditions are satisfied.
 * All when() functions must return true for the intercept to activate.
 * If no when() conditions are defined, the intercept always activates.
 *
 * During action revalidation, when() is NOT evaluated.
 */
export declare function evaluateInterceptWhen(intercept: InterceptEntry, selectorContext: InterceptSelectorContext | null, isAction: boolean): boolean;
/**
 * Find an intercept for the target route by walking up the entry chain.
 * Returns the first (innermost) matching intercept along with the entry that defines it.
 */
export declare function findInterceptForRoute(targetRouteKey: string, fromEntry: EntryData | null, selectorContext?: InterceptSelectorContext | null, isAction?: boolean): {
    intercept: InterceptEntry;
    entry: EntryData;
} | null;
/**
 * Resolve an intercept entry and emit segment with the slot name.
 */
export declare function resolveInterceptEntry<TEnv>(interceptEntry: InterceptEntry, parentEntry: EntryData, params: Record<string, string>, context: HandlerContext<any, TEnv>, belongsToRoute: boolean, deps: SegmentResolutionDeps<TEnv>, revalidationContext?: {
    clientSegmentIds: Set<string>;
    prevParams: Record<string, string>;
    request: Request;
    prevUrl: URL;
    nextUrl: URL;
    routeKey: string;
    actionContext?: {
        actionId?: string;
        actionUrl?: URL;
        actionResult?: any;
        formData?: FormData;
    };
    stale?: boolean;
}): Promise<ResolvedSegment[]>;
/**
 * Resolve only the loaders for a cached intercept segment.
 * Used on intercept cache hit to get fresh loader data while keeping cached component/layout.
 */
export declare function resolveInterceptLoadersOnly<TEnv>(interceptEntry: InterceptEntry, parentEntry: EntryData, params: Record<string, string>, context: HandlerContext<any, TEnv>, belongsToRoute: boolean, deps: SegmentResolutionDeps<TEnv>, revalidationContext: {
    clientSegmentIds: Set<string>;
    prevParams: Record<string, string>;
    request: Request;
    prevUrl: URL;
    nextUrl: URL;
    routeKey: string;
    actionContext?: {
        actionId?: string;
        actionUrl?: URL;
        actionResult?: any;
        formData?: FormData;
    };
    stale?: boolean;
}): Promise<{
    loaderDataPromise: Promise<any[]> | any[];
    loaderIds: string[];
} | null>;
//# sourceMappingURL=intercept-resolution.d.ts.map