+
+/**
+ * Get the client's authentication status. This is only useful if Petitboot
+ * has been built with crypt support.
+ */
+bool discover_client_authenticated(struct discover_client *client);
+
+/* Tell the discover server to boot an image
+ * @param client A pointer to the discover client
+ * @param boot_command The command to boot
+ */
+int discover_client_boot(struct discover_client *client,
+ const struct device *device,
+ const struct boot_option *boot_option,
+ const struct pb_boot_data *data);
+
+/* Tell the discover server to cancel the default boot option, if any
+ */
+int discover_client_cancel_default(struct discover_client *client);
+
+/* Tell the discover server to reinitialise */
+int discover_client_send_reinit(struct discover_client *client);
+
+/* Send new configuration data to the discover server */
+int discover_client_send_config(struct discover_client *client,
+ struct config *config);
+
+/* Re-enumerate the collected devices & boot options, calling ops->device_add
+ * and ops->boot_option_add on each.
+ */
+void discover_client_enumerate(struct discover_client *client);
+
+/* Send url to config to the discover server */
+int discover_client_send_url(struct discover_client *client, char *url);
+/* Send plugin file path to discover server to install */
+int discover_client_send_plugin_install(struct discover_client *client,
+ char *file);
+/* Authenticate with pb-discover to allow modification */
+int discover_client_send_authenticate(struct discover_client *client,
+ char *password);
+/* Set a new system password, authenticating with the current password */
+int discover_client_send_set_password(struct discover_client *client,
+ char *password, char *new_password);
+/* Send a password to open an encrypted device */
+int discover_client_send_open_luks_device(struct discover_client *client,
+ char *password, char *device_id);
+
+/* send a temporary autoboot override */
+int discover_client_send_temp_autoboot(struct discover_client *client,
+ const struct autoboot_option *opt);
+