import { AnyRouter, ControllablePromise, MakeRouteMatch } from '@tanstack/react-router'; import { DeferredPromiseState, Manifest } from '@tanstack/router-core'; declare global { interface Window { __TSR_SSR__?: StartSsrGlobal; } } export interface StartSsrGlobal { matches: Array; streamedValues: Record; cleanScripts: () => void; dehydrated?: any; initMatch: (match: SsrMatch) => void; resolvePromise: (opts: { matchId: string; id: number; promiseState: DeferredPromiseState; }) => void; injectChunk: (opts: { matchId: string; id: number; chunk: string; }) => void; closeStream: (opts: { matchId: string; id: number; }) => void; } export interface SsrMatch { id: string; __beforeLoadContext: string; loaderData?: string; error?: string; extracted?: Array; updatedAt: MakeRouteMatch['updatedAt']; status: MakeRouteMatch['status']; } export type ClientExtractedEntry = ClientExtractedStream | ClientExtractedPromise; export interface ClientExtractedPromise extends ClientExtractedBaseEntry { type: 'promise'; value?: ControllablePromise; } export interface ClientExtractedStream extends ClientExtractedBaseEntry { type: 'stream'; value?: ReadableStream & { controller?: ReadableStreamDefaultController; }; } export interface ClientExtractedBaseEntry { type: string; path: Array; } export interface ResolvePromiseState { matchId: string; id: number; promiseState: DeferredPromiseState; } export interface DehydratedRouter { manifest: Manifest | undefined; dehydratedData: any; } export declare function hydrate(router: AnyRouter): Promise;