/**
 * @file connection_manager.h
 * @brief WebSocket 连接生命周期管理
 */

#ifndef CORE_CONNECTION_MANAGER_H
#define CORE_CONNECTION_MANAGER_H

#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include "aiagent_types.h"
#include "aiagent_config.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct engine_internal_ctx engine_internal_ctx_t;

/**
 * @brief 发起 WebSocket 连接（异步）
 * @param url 完整 WebSocket URL
 */
int conn_mgr_connect(engine_internal_ctx_t *ctx, const char *url);

/** @brief 断开连接 */
int conn_mgr_disconnect(engine_internal_ctx_t *ctx);

/** @brief 发送文本帧 */
int conn_mgr_send_text(engine_internal_ctx_t *ctx, const char *text);

/** @brief 发送二进制帧 */
int conn_mgr_send_binary(engine_internal_ctx_t *ctx, const void *data, size_t len);

/** @brief 查询是否已连接 */
bool conn_mgr_is_connected(engine_internal_ctx_t *ctx);

/** @brief 断开并释放资源 */
void conn_mgr_deinit(engine_internal_ctx_t *ctx);

#ifdef __cplusplus
}
#endif

#endif /* CORE_CONNECTION_MANAGER_H */
