#pragma once

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#include "esp_err.h"
#include "sdkconfig.h"

#ifndef CONFIG_WATCH_WS2812_LED_COUNT
#define CONFIG_WATCH_WS2812_LED_COUNT 5
#endif

#define WS2812_STATUS_LED_COUNT CONFIG_WATCH_WS2812_LED_COUNT

esp_err_t ws2812_status_init(void);
esp_err_t ws2812_status_set_channel_state(size_t channel, bool enabled);
esp_err_t ws2812_status_set_error(bool has_error);
esp_err_t ws2812_status_set_service_state(size_t channel, bool vpn_ok, bool app_ok);
esp_err_t ws2812_status_set_startup_hold(uint32_t duration_ms);
esp_err_t ws2812_status_refresh_from_dcdc(void);
