import { type TemplateRegistry, type TemplateComponent } from '../components/CmsProvider';
/**
 * Configuration options for template registry
 */
export interface TemplateRegistryConfig {
    includeDefaultTemplates?: boolean;
    includeWildcardPatterns?: boolean;
    customTemplates?: TemplateRegistry;
    defaultTemplate?: TemplateComponent;
}
/**
 * Default template registry type
 */
export interface DefaultTemplateRegistry extends TemplateRegistry {
    post: TemplateComponent;
    page: TemplateComponent;
    blog: TemplateComponent;
    'blog.*': TemplateComponent;
    default: TemplateComponent;
}
/**
 * Create a default template registry with common content types
 *
 * @param config Configuration options for the registry
 * @returns Template registry with default templates
 */
export declare function createDefaultTemplateRegistry(config?: TemplateRegistryConfig): DefaultTemplateRegistry;
/**
 * Create a minimal template registry with just the default template
 *
 * @param defaultTemplate The template to use as default (optional)
 * @returns Minimal template registry
 */
export declare function createMinimalTemplateRegistry(defaultTemplate?: TemplateComponent): TemplateRegistry;
/**
 * Create a comprehensive template registry with all available templates
 *
 * @param customTemplates Additional custom templates to include
 * @returns Comprehensive template registry
 */
export declare function createComprehensiveTemplateRegistry(customTemplates?: TemplateRegistry): TemplateRegistry;
/**
 * Utility function to extend an existing template registry
 *
 * @param existingRegistry The existing template registry
 * @param extensions Additional templates to add
 * @returns Extended template registry
 */
export declare function extendTemplateRegistry(existingRegistry: TemplateRegistry, extensions: TemplateRegistry): TemplateRegistry;
/**
 * Utility function to create a template registry for specific content types
 *
 * @param contentTypes Array of content types to create templates for
 * @param templateComponent The template component to use for all types
 * @returns Template registry with specified content types
 */
export declare function createContentTypeRegistry(contentTypes: string[], templateComponent?: TemplateComponent): TemplateRegistry;
/**
 * Default export - the standard template registry
 */
export default createDefaultTemplateRegistry;
//# sourceMappingURL=templateRegistry.d.ts.map