/// import { exec } from 'child_process'; export interface ConfigJson { name: string; ignoreKeys: string[]; } export interface Config { source: string; ignore: string[]; json?: ConfigJson[]; } export declare class Template { static execAsync: typeof exec.__promisify__; static readJson(filePath: string): Promise; static readGitIgnore(filePath: string): Promise; static config(location: string): Promise; static files(location: string, ignore: string[]): Promise; static rmdir(location: string): Promise; static mkdirp(location: string): Promise; static clone(repo: string, location: string): Promise<{ stdout: string; stderr: string; }>; static templateFile(file: string, location: string): string; static normalFile(templateFile: string, templateDir: string, location: string): string; static omit(keys: string[], obj: { [key: string]: any; }): { [key: string]: any; }; static deepMerge(target: { [key: string]: any; }, source: { [key: string]: any; }): { [key: string]: any; }; static mergeJson(json: Config['json'], location: string, cmd: string): Promise; static main(location: string, cmd: string): Promise; static cli(process: NodeJS.Process): Promise; }