//go:build !windows

package client

// WGSetupResult is the cross-platform type returned by WGSetupJSON.
type WGSetupResult struct {
	PublicKey    string `json:"public_key"`
	ExternalIP   string `json:"external_ip"`
	ExternalPort int    `json:"external_port"`
	UPnPOK       bool   `json:"upnp_ok"`
	Error        string `json:"error,omitempty"`
}

// WGPeerEntry describes one WireGuard peer.
type WGPeerEntry struct {
	PublicKey           string `json:"public_key"`
	Endpoint            string `json:"endpoint"`
	AllowedIPs          string `json:"allowed_ips"`
	PersistentKeepalive int    `json:"persistent_keepalive"`
}

// WGConfigPayload is sent server→agent to configure the tunnel.
type WGConfigPayload struct {
	SessionID          string        `json:"session_id"`
	PrivateKey         string        `json:"private_key"`
	LocalAddress       string        `json:"local_address"`
	ListenPort         int           `json:"listen_port"`
	Peers              []WGPeerEntry `json:"peers"`
	EnableIPForwarding bool          `json:"enable_ip_forwarding"`
}

func WGSetupJSON() string {
	return `{"error":"WireGuard Path Tracer is Windows-only in this build"}`
}

func WGConfigure(_ WGConfigPayload) error { return nil }
func WGTeardown()                         {}
func WGIsActive() bool                    { return false }
func WGStatus() string                    { return "not supported on this platform" }
