import { type History } from "history";
import { type PropsWithChildren } from "react";
import { Subject } from "../utils/Subject";
import { ProgressManager } from "./ProgressManager";
import type { Breadcrumb } from "./useBreadcrumbs";
import type { RouteState } from "./RouteStateContext";
declare global {
    interface Window {
        scrollHistory: Map<string, number>;
    }
}
interface ClientRouterContextValue {
    viewEntriesSubject: Subject<string[]>;
    history: History | null;
    updatePageData: (pageData: Record<string, unknown>, breadcrumbs: Record<string, Breadcrumb>) => void;
    getPageData: (key: string, pathname: string) => Record<string, unknown>;
    getScrollPosition: (path: string) => number;
    getViewPathsFromPathname: (pathname: string) => string[];
    getRoutePathnameFromHref: (href: string) => string | null;
    isNavigatingSubject: Subject<boolean>;
    setNavigationAbortController: (controller: AbortController) => void;
    progressManager: ProgressManager;
    fetchRouteCSS: (routePath: string) => Promise<void>;
    breadcrumbsCache: Map<string, Breadcrumb>;
    routerSubject: Subject<RouteState>;
    urlLocaleSegment: string | null;
}
export declare const ClientRouterContext: import("react").Context<ClientRouterContextValue>;
interface ClientRouterProviderProps {
    pathname: string;
    routeManifest: Record<string, string[]>;
    cssManifest: Record<string, string[]>;
    pageData: Record<string, unknown>;
    currentPath: string;
    urlLocaleSegment: string | null;
    params: Record<string, string>;
    searchParams: string;
    is404: boolean;
    is500: boolean;
    breadcrumbs: Record<string, Breadcrumb>;
}
export declare const ClientRouterProvider: (props: PropsWithChildren<ClientRouterProviderProps>) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ClientRouterContext.d.ts.map