import { PrefetchCacheEntryStatus, type PrefetchCacheEntry, PrefetchKind, type ReadonlyReducerState } from './router-reducer-types';
import type { FetchServerResponseResult } from '../../../server/app-render/types';
export type AliasedPrefetchCacheEntry = PrefetchCacheEntry & {
    /** This is a special property that indicates a prefetch entry associated with a different URL
     * was returned rather than the requested URL. This signals to the router that it should only
     * apply the part that doesn't depend on searchParams (specifically the loading state).
     */
    aliased?: boolean;
};
/**
 * Returns a prefetch cache entry if one exists. Otherwise creates a new one and enqueues a fetch request
 * to retrieve the prefetch data from the server.
 */
export declare function getOrCreatePrefetchCacheEntry({ url, nextUrl, tree, buildId, prefetchCache, kind, }: Pick<ReadonlyReducerState, 'nextUrl' | 'prefetchCache' | 'tree' | 'buildId'> & {
    url: URL;
    kind?: PrefetchKind;
}): AliasedPrefetchCacheEntry;
/**
 * Use to seed the prefetch cache with data that has already been fetched.
 */
export declare function createPrefetchCacheEntryForInitialLoad({ nextUrl, tree, prefetchCache, url, data, }: Pick<ReadonlyReducerState, 'nextUrl' | 'tree' | 'prefetchCache'> & {
    url: URL;
    data: FetchServerResponseResult;
}): {
    treeAtTimeOfPrefetch: import("../../../server/app-render/types").FlightRouterState;
    data: Promise<FetchServerResponseResult>;
    kind: PrefetchKind.AUTO;
    prefetchTime: number;
    lastUsedTime: number;
    key: string;
    status: PrefetchCacheEntryStatus.fresh;
    pathname: string;
};
export declare function prunePrefetchCache(prefetchCache: ReadonlyReducerState['prefetchCache']): void;
