/** * Go detection — CONTENT-AWARE go.mod classification. * * A go.mod alone does NOT mean "backend" or "CLI". The same module file backs * libraries, HTTP servers (Gin / Echo / Fiber / Chi), CLIs (Cobra), and MCP * servers (mcp-go). We read require paths and light layout signals, then branch. * * Same composition pattern as dart.ts: knowledge in go-detection.json, logic here. * Turbo-Cat + scanner both call detectGoProject so they agree by construction. */ export type GoAppType = 'mcp' | 'backend' | 'cli' | 'library'; export interface GoProject { /** faf app_type — MCP→mcp, server→backend, CLI→cli, else library. */ appType: GoAppType; /** Module path from `module` line, or ''. */ modulePath: string; /** Primary framework (Gin / Cobra / …) or ''. */ framework: string; /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */ found: string; } /** Collect require module paths from go.mod (require X and require ( … ) blocks). */ export declare function goModRequires(content: string): Set; /** Classify a Go project from go.mod (+ light layout). Returns null if not Go. */ export declare function detectGoProject(dir: string): GoProject | null;