export interface BuildOptions { data: any; templatePath: string; outDir: string; } export default abstract class AbstractCommand { buildOptions: BuildOptions; abstract getFileExtension(): string; execute(successHandler?: Function): void; protected compileTemplate(fileContent: string, data: any): string; protected writeFile(fileName: string, template: string, successHandler?: Function): void; builder(buildOption: BuildOptions): this; }