#ifndef EVSE_MANAGER_H
#define EVSE_MANAGER_H

#pragma once

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdint.h>
#include <freertos/FreeRTOS.h>
#include <freertos/queue.h>

/**
 * @brief Inicializa os módulos internos do EVSE (hardware, estado, erros, etc.)
 *        e inicia a tarefa de supervisão periódica (tick).
 */
void evse_manager_init(void);

/**
 * @brief Executa uma iteração do ciclo de controle do EVSE.
 *
 * Esta função é chamada automaticamente pela task periódica,
 * mas pode ser chamada manualmente em testes.
 */
void evse_manager_tick(void);

#ifdef __cplusplus
}
#endif


#endif // EVSE_MANAGER_H
