/**
 * @fileoverview Lazy-Loaded Template Components
 *
 * This module provides lazy-loaded versions of template components for code splitting
 * and performance optimization. These components load on-demand to reduce initial bundle size.
 */
import React from 'react';
import type { DefaultTemplateProps } from '../types';
/**
 * Lazy-loaded DefaultTemplateV2 component
 */
export declare const LazyDefaultTemplateV2: React.LazyExoticComponent<React.FC<import("./DefaultTemplateV2").ExtendedTemplateProps>>;
/**
 * Lazy-loaded SimpleDefaultTemplate component
 */
export declare const LazySimpleDefaultTemplate: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
/**
 * Lazy-loaded BlogTemplate component
 */
export declare const LazyBlogTemplate: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
/**
 * Lazy-loaded PageTemplate component
 */
export declare const LazyPageTemplate: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
/**
 * Lazy-loaded PostTemplate component
 */
export declare const LazyPostTemplate: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
/**
 * DefaultTemplateV2 with Suspense wrapper
 */
export declare const DefaultTemplateV2WithSuspense: React.FC<DefaultTemplateProps>;
/**
 * SimpleDefaultTemplate with Suspense wrapper
 */
export declare const SimpleDefaultTemplateWithSuspense: React.FC<DefaultTemplateProps>;
/**
 * BlogTemplate with Suspense wrapper
 */
export declare const BlogTemplateWithSuspense: React.FC<DefaultTemplateProps>;
/**
 * PageTemplate with Suspense wrapper
 */
export declare const PageTemplateWithSuspense: React.FC<DefaultTemplateProps>;
/**
 * PostTemplate with Suspense wrapper
 */
export declare const PostTemplateWithSuspense: React.FC<DefaultTemplateProps>;
/**
 * Template mapping for lazy loading
 */
export declare const LAZY_TEMPLATE_MAP: {
    readonly 'default-v2': React.LazyExoticComponent<React.FC<import("./DefaultTemplateV2").ExtendedTemplateProps>>;
    readonly 'simple-default': React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
    readonly blog: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
    readonly page: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
    readonly post: React.LazyExoticComponent<React.FC<DefaultTemplateProps>>;
};
/**
 * Template mapping with Suspense wrappers
 */
export declare const TEMPLATE_MAP_WITH_SUSPENSE: {
    readonly 'default-v2': React.FC<DefaultTemplateProps>;
    readonly 'simple-default': React.FC<DefaultTemplateProps>;
    readonly blog: React.FC<DefaultTemplateProps>;
    readonly page: React.FC<DefaultTemplateProps>;
    readonly post: React.FC<DefaultTemplateProps>;
};
/**
 * Preload all templates
 */
export declare const preloadAllTemplates: () => Promise<void>;
/**
 * Preload specific template
 */
export declare const preloadTemplate: (templateName: keyof typeof LAZY_TEMPLATE_MAP) => Promise<void>;
/**
 * Props for dynamic template loader
 */
export interface DynamicTemplateLoaderProps extends DefaultTemplateProps {
    /** Template name to load */
    templateName?: keyof typeof LAZY_TEMPLATE_MAP;
    /** Whether to show loading state */
    showLoading?: boolean;
    /** Custom loading component */
    loadingComponent?: React.ComponentType;
    /** Preload on hover */
    preloadOnHover?: boolean;
}
/**
 * Dynamic template loader component
 */
export declare const DynamicTemplateLoader: React.FC<DynamicTemplateLoaderProps>;
/**
 * Lazy-loaded error pages for better performance
 */
export declare const LazyErrorPages: {
    NotFoundPage: React.LazyExoticComponent<React.FC<import("../components").NotFoundPageProps>>;
    ServerErrorPage: React.LazyExoticComponent<React.FC<import("../components").ServerErrorPageProps>>;
};
/**
 * Error page with Suspense wrapper
 */
export declare const ErrorPageWithSuspense: React.FC<{
    type: keyof typeof LazyErrorPages;
    fallback?: React.ReactNode;
    [key: string]: any;
}>;
/**
 * Get chunk name for template
 */
export declare const getTemplateChunkName: (templateName: string) => string;
/**
 * Check if template is preloaded
 */
export declare const isTemplatePreloaded: (_templateName: keyof typeof LAZY_TEMPLATE_MAP) => boolean;
/**
 * Template performance metrics
 */
export interface TemplateMetrics {
    templateName: string;
    loadTime: number;
    size: number;
    cached: boolean;
}
/**
 * Track template loading performance
 */
export declare const trackTemplateLoad: (templateName: string, startTime: number) => TemplateMetrics;
//# sourceMappingURL=LazyTemplates.d.ts.map