package app

type CliOptions interface {
	// AddFlags adds flags to the specified FlagSet object
	// AddFlags(fs *pflag.FlagSet)
	Flags() (fss NamedFlagSets)
	Validate() []error
}

type ConfigurableOptions interface {
	// ApplyFlags parsing parameters from the command line or configuration file
	// to the options instance
	ApplyFlags() []error
}

type CompleteableOptions interface {
	Complete() error
}

// PrintableOptions abstracts options which can be printed
type PrintableOptions interface {
	String() string
}
