#pragma once

#include "esp_err.h"
#include "esp_wifi_types.h"
#include "esp_event.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Callback chamado quando o Wi-Fi se conecta e obtém IP.
 *        (usado para iniciar MQTT, LEDs, etc.)
 */
typedef void (*wifi_connected_cb_t)(void);

/**
 * @brief Inicializa o módulo Wi-Fi com modo STA ou AP de configuração.
 *
 * @param cb          Função callback chamada quando há ligação Wi-Fi com IP.
 * @param have_creds  true se já tiver credenciais gravadas.
 */
void wifi_config_portal_init(wifi_connected_cb_t cb, bool have_creds);

/**
 * @brief Funções auxiliares do portal cativo (DNS + HTTP)
 *        São definidas em dns_server.c
 */
void start_dns_server(void);
void stop_dns_server(void);

#ifdef __cplusplus
}
#endif
