import fs from 'node:fs'; export type TemplateRenderView = Record; /** * Optional controls for raw directory copies. * * The filter runs for each discovered entry before copying. Returning `false` * skips only that entry; when the skipped entry is a directory, the subtree is * skipped as well. */ export interface CopyRawDirectoryOptions { /** * Predicate that decides whether a discovered entry should be copied. * * Throwing or rejecting aborts the copy and bubbles to the caller. */ filter?: CopyDirectoryFilter; } export type CopyDirectoryFilter = (sourcePath: string, destinationPath: string, entry: fs.Dirent) => boolean | Promise; /** * Render a Mustache template with full Mustache semantics while leaving values * unescaped for scaffold source generation. */ export declare function renderMustacheTemplateString(template: string, view: TemplateRenderView): string; /** * Recursively copies a directory tree without rendering template contents. */ export declare function copyRawDirectory(sourceDir: string, targetDir: string, options?: CopyRawDirectoryOptions): Promise; /** * Copy a template directory using full Mustache semantics for filenames and * text-file contents while leaving rendered values unescaped. */ export declare function copyRenderedDirectory(sourceDir: string, targetDir: string, view: TemplateRenderView, options?: { filter?: CopyDirectoryFilter; }): Promise; /** * Copy a template directory using direct `{{key}}` replacement only. * * This intentionally preserves literal Mustache sections, partials, and other * advanced constructs so built-in scaffold copy paths keep their historical * interpolation behavior. */ export declare function copyInterpolatedDirectory(sourceDir: string, targetDir: string, view: Record): Promise; /** * Lists the output file paths produced by an interpolated template directory * without writing any files to disk. * * This walks the source directory, applies the same filename interpolation and * `.mustache` stripping rules as `copyInterpolatedDirectory(...)`, and returns * normalized output-relative paths under a virtual root. * * @param sourceDir - The template directory to traverse. * @param view - The interpolation map used when resolving file and directory * names. * @returns A sorted array of normalized output paths relative to a virtual * preview root. */ export declare function listInterpolatedDirectoryOutputs(sourceDir: string, view: Record): Promise; export declare function pathExistsSync(targetPath: string): boolean;