#ifndef THREAD_MGMT_H
#define THREAD_MGMT_H

#include <stdint.h>
#include <ble_mgmt.h>

/**
 * @brief Initializes the OpenThread stack.
 */
int thread_mgmt_init(void);

/**
 * @brief Restarts the Thread stack.
 * @param force If true, forces a full restart even if dataset is unchanged.
 */
void thread_mgmt_restart_thread_stack(device_config_payload_t *pending_config, bool force);

uint16_t thread_mgmt_get_pan_id(void);
uint8_t thread_mgmt_get_channel(void);
void thread_mgmt_get_ext_pan_id(uint8_t *dest_8byte);
void thread_mgmt_get_network_key(uint8_t *dest_16byte);
void thread_mgmt_get_network_name(char *dest_str, size_t max_len);

#endif