export interface RouteChunkRecoveryState { intendedHref: string | null; intendedAt: number; routeModuleFailureAt: number; recoveryHref: string | null; recovering: boolean; } export declare function createRouteChunkRecoveryState(): RouteChunkRecoveryState; export declare function isRouteModuleReloadMessage(value: unknown): boolean; export declare function isDynamicImportFailureMessage(value: unknown): boolean; export declare function rememberIntendedNavigation(state: RouteChunkRecoveryState, href: string, now?: number): void; export declare function getFreshIntendedNavigation(state: RouteChunkRecoveryState, currentHref: string, now?: number): string | null; export declare function intendedHrefFromClick(win: Window, event: MouseEvent): string | null; /** * Last resort when a stale lazy chunk fails to load for the *current* route — * an old tab whose hashed chunk filenames no longer exist after a deploy — and * there is no fresh cross-route navigation to recover to. A single guarded * reload pulls a fresh index.html plus chunk manifest. A sessionStorage cooldown * prevents a reload loop when the chunk is genuinely unreachable (e.g. offline), * letting the error surface to Sentry as before in that case. * * Returns true when a reload was triggered. */ export declare function reloadForStaleChunk(win?: Window | undefined, now?: number): boolean; /** * Recover when a caught error (e.g. a `React.lazy` rejection surfaced to an * error boundary) is a stale dynamic-import failure. No-op and returns false * for any other error so callers can fall through to their normal handling. */ export declare function recoverFromStaleChunkError(error: unknown, win?: Window | undefined): boolean; export declare function installRouteChunkRecovery(win?: Window | undefined): void; //# sourceMappingURL=route-chunk-recovery.d.ts.map