/*
 * index.d.ts
 * This definition file will typed to "src/index.ts" and sub-modules.
 */

interface IRequired {
  templates: IRequiredTemplates[];
  packageDatas: IRequiredPackageDatas;
  devDependencies: IRequiredDevDependencies[];
}

interface IRequiredTemplates {
  src: string;
  target: string;
  overwrite: boolean;
}

interface IRequiredPackageDatas {
  private: boolean;
  license: string;
  engines: {
    node: string;
    npm: string;
  };
  babel: {
    presets: string[];
    plugins: string[];
  };
  browserslist: string[];
  husky: {
    hooks: {
      'pre-push': string;
    };
  };
}

interface IRequiredDevDependencies {
  name: string;
  version?: string;
}
