+/**
+ * Internal implementation of the main eVaf CLI application.
+ */
+namespace Internal {
+} // namespace eVaf::CLI::Internal
+
+/**
+ * The main eVaf CLI application class
+ */
+class Application : public QCoreApplication
+{
+ Q_OBJECT
+
+public:
+
+ Application(int & argc, char ** argv);
+
+ virtual ~Application();
+
+
+public: // Static methods
+
+ /**
+ * Processes command-line arguments
+ * @param argc Number of command-line arguments
+ * @param argv List of command-line arguments
+ * @return True if ok; false if the application should terminate
+ *
+ * This function processes command-line arguments and should be called before running
+ * the application.
+ */
+ static bool processCommandLine(int argc, char ** argv);
+
+ /**
+ * Prints out help for command-line arguments.
+ */
+ static void printHelp();
+
+ /**
+ * Prints out help for Qt command-line arguments.
+ */
+ static void printQtHelp();
+
+ /**
+ * Prints out version information.
+ */
+ static void printVersion();
+
+};
+
+} // namespace eVaf::CLI
+} // namespace eVaf