/** * Template Flattener - Resolves template inheritance at compile-time * * This module flattens template inheritance chains (extends/include/block) * into a single AST that can be compiled to AOT JavaScript. * * Requirements: * - extends/include must use static string literals (not variables) * - Template loader must be provided to resolve template names */ import type { TemplateNode } from '../parser/nodes'; export interface TemplateLoader { /** Load template source by name (sync for compile-time resolution) */ load(name: string): string; /** Parse template source to AST */ parse(source: string): TemplateNode; } export interface FlattenOptions { /** Template loader for resolving extends/include */ loader: TemplateLoader; /** Maximum inheritance depth (default: 10) */ maxDepth?: number; } /** * Flatten a template AST by resolving all extends/include/block tags * Returns a new AST with no inheritance - ready for AOT compilation */ export declare function flattenTemplate(ast: TemplateNode, options: FlattenOptions): TemplateNode; /** * Check if a template can be flattened (all extends/include are static) */ export declare function canFlatten(ast: TemplateNode): { canFlatten: boolean; reason?: string; }; //# sourceMappingURL=flattener.d.ts.map