import { CBFileSystem } from '../node/file-system'; /** * Template service for managing templates across different CLI packages */ export declare class TemplateService { private fileSystem; private templatesDir; constructor(fileSystem: CBFileSystem, templatesDir: string); /** * Validates template exists * @param {string} template - Template name to validate * @returns {boolean} True if template is valid */ validateTemplate(template: string): boolean; /** * Validates app directory for conflicts * @param {string} targetDir - Target directory path * @param {string} appDir - Original app directory argument * @param {string} template - Template name * @returns {string[]} Array of conflicting files (empty if no conflicts) */ validateAppDirectory(targetDir: string, appDir: string, template: string): string[]; /** * Gets a list of available templates from the templates directory * @returns {string[]} Array of template names */ getAvailableTemplates(): string[]; /** * Gets the full path to a specific template * @param {string} template - Template name * @returns {string} Full path to the template directory */ getTemplatePath(template: string): string; /** * Gets the templates directory path * @returns {string} Path to the templates directory */ getTemplatesDirectory(): string; /** * Recursively collects all files from a template directory * @param {string} templatePath - Path to the template directory * @returns {string[]} Array of file paths relative to template root */ getTemplateFiles(templatePath: string): string[]; /** * Recursively copies all files from template directory to target directory * @param {string} templatePath - Source template directory path * @param {string} targetPath - Target directory path */ copyTemplateFiles(templatePath: string, targetPath: string): void; /** * Prints a tree-like structure of the project directory * @param {string} dir - Directory path to print structure for * @param {string} [indent=''] - Current indentation level */ printProjectStructure(dir: string, indent?: string): void; }