import { UISchema } from '../types'; import { PlatformType } from './component-registry'; /** * Template layer types */ export type TemplateLayer = 'base' | 'platform' | 'theme'; /** * Component template definition */ export interface ComponentTemplate { /** Template layer */ layer: TemplateLayer; /** Target platform (for platform layer) */ platform?: PlatformType; /** Theme name (for theme layer) */ theme?: string; /** Template UI schema */ template: UISchema; /** Additional styles */ styles?: Record; } /** * Template Manager class * * Manages component templates with three-layer architecture: * 1. Base - Common component structure * 2. Platform - Platform-specific overrides * 3. Theme - Theme-specific styling */ export declare class TemplateManager { private templates; /** * Register a template * @param componentName - Component name * @param template - Template definition */ registerTemplate(componentName: string, template: ComponentTemplate): void; /** * Get a specific template * @param componentName - Component name * @param layer - Template layer * @param platform - Platform (for platform layer) * @param theme - Theme (for theme layer) */ getTemplateByLayer(componentName: string, layer: TemplateLayer, platform?: PlatformType, theme?: string): ComponentTemplate | undefined; /** * Get merged template for a component * Merges Base → Platform → Theme layers * @param componentName - Component name * @param platform - Target platform * @param theme - Theme name * @returns Merged UISchema or undefined */ getTemplate(componentName: string, platform: PlatformType, theme?: string): UISchema | undefined; /** * Merge multiple templates * @param base - Base schema * @param overrides - Override schemas * @returns Merged schema */ mergeTemplates(base: UISchema, ...overrides: UISchema[]): UISchema; /** * Check if a template exists */ hasTemplate(componentName: string, layer: TemplateLayer, platform?: PlatformType, theme?: string): boolean; /** * Remove a template */ removeTemplate(componentName: string, layer: TemplateLayer, platform?: PlatformType, theme?: string): boolean; /** * Get all templates for a component */ getComponentTemplates(componentName: string): ComponentTemplate[]; /** * Clear all templates */ clear(): void; /** * Get template count */ get size(): number; } /** * Default template manager instance */ export declare const defaultTemplateManager: TemplateManager; //# sourceMappingURL=template-manager.d.ts.map