import { ResolvedTemplate, CombinoConfig, PluginManager } from './types.js'; export declare class TemplateResolver { private configParser; private fileProcessor; private configFileName; private enableConditionalIncludePaths; constructor(configFileName?: string, enableConditionalIncludePaths?: boolean); /** * Normalize include items to the object format */ private normalizeIncludeItem; /** * Normalize include array to object format */ private normalizeIncludeArray; /** * Apply conditional logic to include paths, filtering out paths that should be excluded */ private applyConditionalLogicToIncludePaths; /** * Apply conditional logic to include paths using the correct unwrapping algorithm */ private applyConditionalLogicToIncludePath; /** * Process embedded conditional expressions within a segment */ private processEmbeddedConditionals; /** * Simple EJS-like rendering for path segments */ private ejsRender; private isConditionalExpression; private evaluateCondition; private evaluateExpression; /** * Given a logical include path (with [expr] segments unwrapped), return the real path on disk (with [expr] segments included if truthy) */ private resolvePhysicalPathForInclude; /** * Try to resolve a physical path by attempting both bracketed and non-bracketed versions * of conditional segments. This allows for flexible directory structures. */ private tryResolvePhysicalPathWithFallback; /** * Generate multiple path variations to try when looking for files on disk * This handles cases where files exist with conditionals in their names */ private generatePathVariations; /** * Generate variations for a single path segment */ private generateSegmentVariations; /** * Generate variations for a segment with embedded conditionals */ private generateEmbeddedSegmentVariations; /** * Generate filename variations by moving conditionals to different positions */ private generateFilenameVariations; /** * Generate all possible combinations of conditionals in a segment */ private generateConditionalCombinations; /** * Generate all combinations of segment variations */ private generateCombinations; /** * Resolve a path for comparison by applying conditional logic * This is used to match config paths with actual file paths */ private resolvePathForComparison; /** * Extract a condition name from a conditional expression for fallback path resolution */ private extractConditionName; /** * Process embedded conditional expressions within a segment for fallback physical path resolution * This version tries to extract condition names for fallback paths */ private processEmbeddedConditionalsForPhysicalPathFallback; /** * Process embedded conditional expressions within a segment for physical path resolution * This is similar to processEmbeddedConditionals but keeps the conditional parts for disk lookup */ private processEmbeddedConditionalsForPhysicalPath; resolveTemplates(includePaths: string[], config?: CombinoConfig | string, globalExclude?: string[], pluginManager?: PluginManager, data?: Record): Promise; private resolveTemplate; }