///
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;
}