/** * @file usePrefetchRoute Hook * @description Hook for prefetching route data and components */ /** * Prefetch options */ export interface PrefetchOptions { /** Delay before prefetching (ms) */ delay?: number; /** Only prefetch on hover */ onHover?: boolean; /** Stale time for prefetched data (ms) */ staleTime?: number; } /** * Route data loader function */ export type RouteDataLoader = () => Promise; /** * Route prefetch configuration */ export interface RoutePrefetchConfig { /** Query key for the route data */ queryKey: readonly unknown[]; /** Data loader function */ loader: RouteDataLoader; /** Stale time override */ staleTime?: number; } /** * Hook for prefetching route data */ export declare function usePrefetchRoute(): { prefetch: (config: RoutePrefetchConfig, options?: PrefetchOptions) => Promise; prefetchMany: (configs: RoutePrefetchConfig[], options?: PrefetchOptions) => Promise; createHoverHandlers: (config: RoutePrefetchConfig, options?: PrefetchOptions) => { onMouseEnter: () => void; onMouseLeave: () => void; onFocus: () => void; }; clearPrefetch: (queryKey: readonly unknown[]) => void; clearAllPrefetch: () => void; }; /** * Hook for prefetching on link hover */ export declare function usePrefetchOnHover(config: RoutePrefetchConfig, options?: PrefetchOptions): { onMouseEnter: () => void; onMouseLeave: () => void; onFocus: () => void; };