import { default as React, ComponentType, ReactNode } from 'react'; export declare function lazyWithRetry>(importFn: () => Promise<{ default: T; }>, retries?: number, delay?: number): React.LazyExoticComponent; export interface PreloadableComponent> { Component: React.LazyExoticComponent; preload: () => Promise; } export declare function lazyWithPreload>(importFn: () => Promise<{ default: T; }>): PreloadableComponent; export interface ProgressiveOptions { fallback?: ReactNode; errorFallback?: ReactNode; loadingDelay?: number; minimumLoadingTime?: number; } export declare function createProgressiveComponent>(importFn: () => Promise<{ default: T; }>, options?: ProgressiveOptions): any; export declare function useLazyLoad(ref: React.RefObject, options?: globalThis.IntersectionObserverInit): boolean; export interface LazyWrapperProps { children: ReactNode; fallback?: ReactNode; threshold?: number; rootMargin?: string; placeholder?: ReactNode; } export declare const LazyWrapper: React.FC; export interface LazyRouteConfig> { path: string; importFn: () => Promise<{ default: T; }>; preloadOnHover?: boolean; preloadOnFocus?: boolean; prefetchDelay?: number; } export declare function createLazyRoute>(config: LazyRouteConfig): { Component: React.LazyExoticComponent; preload: () => Promise<{ default: T; }>; linkProps: { onFocus?: (() => void) | undefined; onMouseEnter?: (() => void) | undefined; onMouseLeave?: (() => void) | undefined; }; }; export declare function useDynamicImport(importFn: () => Promise, deps?: React.DependencyList): { module: T | null; loading: boolean; error: Error | null; }; export declare class LazyLoadQueue { private queue; private isProcessing; private batchSize; private delay; constructor(batchSize?: number, delay?: number); add(loadFn: () => Promise): void; private process; } export declare function addResourceHint(url: string, type: 'prefetch' | 'preload' | 'preconnect' | 'dns-prefetch', as?: string): void; export declare enum LoadPriority { HIGH = 0, MEDIUM = 1, LOW = 2, IDLE = 3 } export declare class PriorityLoader { private queues; private isProcessing; constructor(); load(fn: () => Promise, priority?: LoadPriority): void; private process; } export declare const lazyLoadQueue: LazyLoadQueue; export declare const priorityLoader: PriorityLoader; declare const _default: { lazyWithRetry: typeof lazyWithRetry; lazyWithPreload: typeof lazyWithPreload; createProgressiveComponent: typeof createProgressiveComponent; useLazyLoad: typeof useLazyLoad; LazyWrapper: React.FC; createLazyRoute: typeof createLazyRoute; useDynamicImport: typeof useDynamicImport; LazyLoadQueue: typeof LazyLoadQueue; addResourceHint: typeof addResourceHint; PriorityLoader: typeof PriorityLoader; LoadPriority: typeof LoadPriority; lazyLoadQueue: LazyLoadQueue; priorityLoader: PriorityLoader; }; export default _default; //# sourceMappingURL=lazy-loading.d.ts.map