import { ParamType } from './params' ; export type CommanderProcessor = ( arg1 : any , arg2 : any ) => void ; export type CommanderOptionParams = [ string , string , CommanderProcessor ? , any ? ] ; export interface BaseParamOptions { name : string ; alias : string ; title : string ; required : boolean ; processor ? : CommanderProcessor ; default ? : any ; } export abstract class BaseParam { protected type : ParamType ; constructor ( protected options ) { } abstract get commanderOption ( ) : CommanderOptionParams ; abstract get inquirerOption ( ) : any ; get isRequired ( ) { return this . options . required ; } get name ( ) { return this . options . name ; } }