+private:
+ RunInT _mRunIn;
+};
+
+/*
+ * List of condition triggers.
+ */
+using CondTriggers = bt2s::span<CondTrigger * const>;
+
+/*
+ * The entry point of a condition trigger program.
+ *
+ * Call this from your own main() with your list of condition triggers
+ * `triggers`.
+ *
+ * Each condition trigger of `triggers` must have a unique name, as
+ * returned by CondTrigger::name().
+ *
+ * This function uses `argc` and `argv` to respond to one of the
+ * following commands:
+ *
+ * `list`:
+ * Prints a list of condition triggers as a JSON array of objects.
+ *
+ * Each JSON object has:
+ *
+ * `cond-id`:
+ * The condition ID of the trigger, as returned by
+ * CondTrigger:condId().
+ *
+ * `name`:
+ * The condition ID name, as returned by CondTrigger::name().
+ *
+ * `run`:
+ * Runs the triggering function of the condition trigger at the
+ * index specified by the next command-line argument.
+ *
+ * For example,
+ *
+ * $ my-cond-trigger-program run 45
+ *
+ * would run the function of the condition trigger `triggers[45]`.
+ *
+ * The program is expected to abort through a libbabeltrace2
+ * condition failure.
+ */
+void condMain(int argc, const char **argv, CondTriggers triggers) noexcept;