package ports

import "net/http"

// HTTPClient is the outbound HTTP transport contract used by all L0 platform
// code that makes external HTTP requests. Callers construct requests using
// http.NewRequestWithContext and pass them to Do; the adapter is responsible
// for SSRF preflight, IP-pinned dialing, redirect validation, and transport
// pooling.
//
// Production implementations: infrastructure/http_client.OutboundClient (direct,
// IP-pinned, for connector_callout.Engine) and infrastructure/http_client.WebhookClient
// (proxy-aware, for ActionService.executeCallWebhook).
// Tests may substitute a lightweight mock.
type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}
