/**
 * Options for scaffolding a new project
 */
export interface ScaffoldOptions {
    /** Project name */
    projectName: string;
    /** Force overwrite existing files */
    force: boolean;
}
/**
 * Template variable substitution context
 */
export interface TemplateContext {
    projectName: string;
    [key: string]: string;
}
/**
 * Service for project scaffolding and template management
 */
export declare class TemplateService {
    private cwd;
    private readonly templatesDir;
    constructor(cwd?: string);
    /**
     * Scaffold a new project from a template (application files only, not CDK)
     * For CDK initialization, use CdkInitService.initializeCdk() instead
     */
    scaffold(templateName: string, targetDir: string, options: ScaffoldOptions, shouldCdk?: boolean): Promise<void>;
    /**
     * Generate runtime.config.ts file
     */
    generateConfig(targetDir: string, projectName: string): Promise<void>;
    /**
     * Generate tsconfig.json file
     */
    generateTsConfig(targetDir: string): Promise<void>;
    /**
     * Validate target directory
     */
    private validateTargetDirectory;
    /**
     * Check if CDK directory already exists
     */
    cdkDirectoryExists(cwd?: string): boolean;
    /**
     * Copy template files recursively with variable substitution
     */
    private copyTemplateFiles;
    /**
     * Substitute template variables in content
     */
    private substituteVariables;
}
