#pragma once

/// @file fl/net/http.h
/// @brief fl::net::http — High-level HTTP client and server facade
///
/// Re-exports existing fetch client and HTTP server types under a unified
/// namespace. All implementation lives in fl/stl/asio/; this header is a
/// thin organizational layer.
///
/// @code
/// #include "fl/net/http.h"
///
/// // Client
/// fl::net::http::fetch_get("http://example.com")
///     .then([](const fl::net::http::Response& r) { ... });
///
/// // Server
/// fl::net::http::Server srv;
/// srv.get("/", [](const fl::net::http::Request& req) {
///     return fl::net::http::ServerResponse::ok("Hello");
/// });
/// srv.start(8080);
/// @endcode

// Client types
#include "fl/net/http/fetch.h"          // IWYU pragma: export

// Server types
#include "fl/stl/asio/http/server.h"    // IWYU pragma: export

// Stream transport types
#include "fl/net/http/stream_client.h"  // IWYU pragma: export
#include "fl/net/http/stream_server.h"  // IWYU pragma: export

// Note: fl::asio::http::Server, Request, Response live in fl/stl/asio/http/server.h
// and will eventually migrate to fl::net::http.

// No aliases needed - types are already PascalCase in fl::net::http::
