+/*
+ * babeltrace_iter_next: Move trace collection position to the next event.
+ *
+ * Returns 0 on success, a negative value on error
+ */
+int babeltrace_iter_next(struct babeltrace_iter *iter);
+
+/*
+ * babeltrace_iter_get_pos - Get the current trace collection position.
+ *
+ * The position returned by this function needs to be freed by
+ * babeltrace_iter_free_pos after use.
+ */
+struct babeltrace_iter_pos *
+ babeltrace_iter_get_pos(struct babeltrace_iter *iter);
+
+/*
+ * babeltrace_iter_free_pos - Free the position.
+ */
+void babeltrace_iter_free_pos(struct babeltrace_iter_pos *pos);
+
+/*
+ * babeltrace_iter_seek_pos - Seek the trace collection to the position.
+ */
+int babeltrace_iter_seek_pos(struct babeltrace_iter *iter,
+ struct babeltrace_iter_pos *pos);
+
+/*
+ * babeltrace_iter_seek_time: Seek the trace collection to the given timestamp.
+ *
+ * Return EOF if timestamp is after the last event of the trace collection.
+ * Return other negative value for other errors.
+ * Return 0 for success.
+ */
+int babeltrace_iter_seek_time(struct babeltrace_iter *iter,
+ uint64_t timestamp);
+
+/*
+ * babeltrace_iter_read_event: Read the iterator's current event data.
+ *
+ * @iter: trace collection iterator (input)
+ * @stream: stream containing event at current position (output)
+ * @event: current event (output)
+ * Return 0 on success, negative error value on error.
+ */
+int babeltrace_iter_read_event(struct babeltrace_iter *iter,
+ struct ctf_stream **stream,
+ struct ctf_stream_event **event);
+
+#endif /* _BABELTRACE_H */