import { FrameworkDetector, ScanContext, RouteBinding, HookBinding } from '../../types.js';

/**
 * Flutter framework detector.
 *
 * Detects Flutter projects by looking for `pubspec.yaml` with a flutter
 * dependency, then extracts:
 *   - Named routes from Navigator.pushNamed / Navigator.pushReplacementNamed
 *   - GoRouter route definitions (path: '...' handler: widget)
 *   - auto_route / go_router annotations (@RoutePage, @GoRoute)
 *   - Widget lifecycle hooks (build, initState, dispose, didChangeDependencies)
 *   - State management signals (Provider, Riverpod, BLoC, GetX)
 */
declare class FlutterDetector implements FrameworkDetector {
    readonly name = "flutter";
    readonly language = "dart";
    readonly filePattern: RegExp;
    detect(projectRoot: string, files: string[]): Promise<boolean>;
    extractRoutes(filePath: string, content: string, ctx: ScanContext): Promise<RouteBinding[]>;
    extractHooks(filePath: string, content: string, ctx: ScanContext): Promise<HookBinding[]>;
}

export { FlutterDetector };
