import type { TemplateHelpers } from './types.js';
/**
 * Convert a string to kebab-case
 */
export declare function kebabCase(str: string): string;
/**
 * Convert a string to camelCase
 */
export declare function camelCase(str: string): string;
/**
 * Convert a string to PascalCase
 */
export declare function pascalCase(str: string): string;
/**
 * Convert a string to snake_case
 */
export declare function snakeCase(str: string): string;
/**
 * Create template helpers with current date/time
 */
export declare function createTemplateHelpers(): TemplateHelpers;
/**
 * Template rendering context combining variables and helpers
 */
export interface TemplateContext extends TemplateHelpers {
    [key: string]: string | boolean | string[] | number | ((str: string) => string) | (() => string);
}
/**
 * Create a full template context with variables and helpers
 */
export declare function createTemplateContext(variables: Record<string, string | boolean | string[]>): TemplateContext;
/**
 * Render an EJS template string
 * @param template - The EJS template string
 * @param context - Template context with variables and helpers
 * @returns Rendered string
 */
export declare function renderTemplate(template: string, context: TemplateContext): string;
/**
 * Render a file path template (using double-brace variable syntax)
 * @param pathTemplate - The path template string with double-brace placeholders
 * @param context - Template context with variables and helpers
 * @returns Rendered path string
 */
export declare function renderPathTemplate(pathTemplate: string, context: TemplateContext): string;
/**
 * Scaffold template engine
 */
export declare class ScaffoldEngine {
    private context;
    constructor(variables: Record<string, string | boolean | string[]>);
    /**
     * Get the current template context
     */
    getContext(): TemplateContext;
    /**
     * Render an EJS template string
     */
    render(template: string): string;
    /**
     * Render a file path template
     */
    renderPath(pathTemplate: string): string;
    /**
     * Render an EJS template file
     */
    renderFile(filePath: string): Promise<string>;
}
