import Command, { flags } from './../base'; import { Container, Config, OpCommand, OpPipeline, OpService } from './../types'; type TemplateDefinition = { kind: string; name: string; priority: boolean; path: string; specialFiles: TemplateSpecialFiles; }; type TemplateSpecialFiles = { pjson: boolean; }; type NewOpMetadata = { name: string; description: string; version: string; }; export default class Init extends Command { static description: string; static flags: flags.Input; static args: { name: string; description: string; }[]; srcDir: string; destDir: string; readTemplates: () => Promise>>; selectKind: (kinds: string[], flagKind: string | undefined) => Promise; selectTemplateName: (templates: string[], flagTemplate: string | undefined) => Promise; /** * Returns the list of templates available for the user based provided flags * and selected languague. * * @remarks * This method will ignore any template directory prefixed with `_` * * @param templates - Available templates for the given Ops type * @param flags - The cli flags provided by the user * @returns Promise The selected template * */ selectTemplate: (templates: Container>, flags: { kind?: string; template?: string; }) => Promise; promptForName: (name: string | undefined, kind: string) => Promise; promptForMetadata: (template: TemplateDefinition, nameParam: string) => Promise; customizeSpecialFiles: (template: TemplateDefinition, metadata: NewOpMetadata, targetPath: string) => Promise; sendAnalytics: (config: Config, kind: string, metadata: NewOpMetadata, targetPath: string) => void; selectOpToBuild: (ops: OpCommand[]) => Promise; convertOpsToCommands: (opsToBuild: Array, opPath: string) => Promise; run(): Promise; } export {};