import { type ReactNode } from "react";
import type { ContentByNavId, DashboardContentFetchers, DashboardNavItemId } from "./dashboardTabModel";
export declare const DEFAULT_DASHBOARD_TAB_CONTENT_CACHE_TTL_MS = 300000;
export type DashboardTabContentCacheContextValue = {
    loadTab: <K extends DashboardNavItemId>(id: K, signal: AbortSignal) => Promise<ContentByNavId[K]>;
    readValid: (id: DashboardNavItemId) => unknown | undefined;
    invalidate: (id?: DashboardNavItemId) => void;
    prefetch: (id: DashboardNavItemId) => void;
};
export declare function useDashboardTabContentCache(): DashboardTabContentCacheContextValue | null;
export declare function useInvalidateDashboardTabContentCache(): () => void;
export declare function DashboardTabContentCacheProvider({ children, fetchers, ttlMs, }: {
    children: ReactNode;
    fetchers: DashboardContentFetchers;
    ttlMs: number;
}): import("react/jsx-runtime").JSX.Element;
