diff --git a/src/ui/progress_indicator.hpp b/src/ui/progress_indicator.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..93f713a1f12ab7db2d2d4369456c23daee6cfcc6
--- /dev/null
+++ b/src/ui/progress_indicator.hpp
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <memory>
+#include <string>
+
+namespace rmrf::ui {
+
+/**
+ * This class is used to share progress information on running tasks. 
+ */
+class progress_indicator {
+public:
+	/**
+	 * Query the progress state
+	 * @return The current progress in percent
+	 */
+	virtual int get_progress();
+	/**
+	 * This method shall be used in order to obtain
+	 * the total amount of steps to be done.
+	 */
+	virtual int get_total_work();
+	/**
+	 * This method shall be used to retrieve the
+	 * current progress as a number of finished jobs.
+	 */
+	virtual int get_current_work();
+	/**
+	 * This method shall be used in order to obtain the
+	 * description of the total operation.
+	 */
+	virtual shared_ptr<string> get_operation_description();
+	/**
+	 * This method shall be used in order to retrieve a
+	 * description of the current step.
+	 */
+	virtual shared_ptr<string> get_current_job_description();
+}
+
+}