declare const WINDOW_DATA_KEY = "__FW_DATA__"; declare const ROUTER_DATA_KEY = "__LOLY_ROUTER_DATA__"; declare const ROUTER_NAVIGATE_KEY = "__LOLY_ROUTER_NAVIGATE__"; type InitialData = { pathname: string; params: Record; props: Record; metadata?: { title?: string; description?: string; } | null; className?: string; notFound?: boolean; error?: boolean; theme?: string; }; type RouterData = { pathname: string; params: Record; searchParams: Record; }; declare global { interface Window { [WINDOW_DATA_KEY]?: InitialData; [ROUTER_DATA_KEY]?: RouterData; [ROUTER_NAVIGATE_KEY]?: (url: string, options?: { revalidate?: boolean; replace?: boolean; }) => Promise; } } type ClientLoadedComponents = { Page: React.ComponentType; layouts: React.ComponentType[]; }; type ClientRouteLoaded = { pattern: string; paramNames: string[]; load: () => Promise; }; type ClientRouteMatch = { route: ClientRouteLoaded; params: Record; }; type RouteViewState = { url: string; route: ClientRouteLoaded | null; params: Record; components: ClientLoadedComponents | null; props: Record; }; /** * Bootstraps the client-side application. * * Simplified flow: * 1. Setup hot reload (development only) * 2. Get container and initial data * 3. Initialize router data * 4. Load and hydrate initial route * * @param routes - Array of client routes * @param notFoundRoute - Not-found route definition * @param errorRoute - Error route definition */ declare function bootstrapClient(routes: ClientRouteLoaded[], notFoundRoute: ClientRouteLoaded | null, errorRoute?: ClientRouteLoaded | null): void; export { type ClientRouteLoaded as C, type InitialData as I, type RouteViewState as R, type ClientLoadedComponents as a, type ClientRouteMatch as b, bootstrapClient as c };