import { IParameter } from "./Parameters/Parameter" ; /**
 * Metadata on a command.
 */ export class CommandMetadata { /**
     * How this affects Budgie source code indentation levels by default (no effect).
     */ private static defaultIndentation : number [ ] = [ ] ; /**
     * Default required parameters for the command (none).
     */ private static defaultParameters : IParameter [ ] = [ ] ; /**
     * Describes the command's purpose.
     */ public description : string ; /**
     * How this affects Budgie source code indentation levels.
     */ public indentation : number [ ] ; /**
     * Unique command name.
     */ public name : string ; /**
     * Required parameters for the command.
     */ public parameters : IParameter [ ] ; param name public constructor ( name ) { this . description = "" ; this . indentation = CommandMetadata . defaultIndentation ; this . name = name ; this . parameters = CommandMetadata . defaultParameters ; } param description returns public withDescription ( description ) { this . description = description ; return this ; } param indentation returns public withIndentation ( indentation ) { this . indentation = indentation ; return this ; } param parameters returns public withParameters ( parameters ) { this . parameters = parameters ; return this ; } }