/** * Dart/Flutter detection — CONTENT-AWARE pubspec classification. * * A pubspec.yaml alone does NOT mean Flutter. The same manifest backs Flutter * apps, pure-Dart CLIs, packages, servers (Dart Frog / Shelf / Serverpod), and * MCP servers (dart_mcp / mcp_server). We read the dependencies and branch — * collapsing everything to "Flutter" is the bug this module fixes. * * Single source of truth for Dart: imported by both the v6 scanner (app-type + * language) and Turbo-Cat (stack fills), so the two engines agree by construction. */ export type DartAppType = 'mobile' | 'mcp' | 'backend' | 'cli' | 'library'; export interface DartProject { /** faf app_type — Flutter→mobile, Dart MCP→mcp, Dart server→backend, CLI→cli, else library. */ appType: DartAppType; isFlutter: boolean; /** Primary framework for the stack (Flutter / Dart Frog / Serverpod / Shelf / …) or ''. */ framework: string; /** Flutter state management (Riverpod / Bloc / Provider / GetX / MobX / Signals) or ''. */ stateManagement: string; /** Routing (go_router / auto_route) or ''. */ routing: string; /** Test framework (flutter_test / test) or ''. */ testing: string; /** Human-readable rationale for the .faf `# found:` comment (Glass Hood). */ found: string; } /** Classify a Dart/Flutter project from its pubspec.yaml. Returns null if not Dart. */ export declare function detectDartProject(dir: string): DartProject | null;