--- /dev/null
+#ifndef SENDS_H
+#define SENDS_H
+
+#include "pico/cyw43_arch.h"
+#include "pico/util/pheap.h"
+
+typedef struct {
+ uint32_t timestamp;
+ u16_t seq;
+ u8_t send_count;
+} press_t;
+
+bool next_send_less_than(void *user_data, pheap_node_id_t a, pheap_node_id_t b);
+
+void create_press(press_t *presses, pheap_t *sleeps_heap, uint32_t timestamp,
+ u16_t seq);
+
+/* When do we next need to send something (in seconds since boot)?
+ * Returns -1 if there's nothing pending. */
+int32_t next_scheduled_send(press_t *presses, pheap_t *sleeps_heap);
+
+#endif