/**
 * @module ProjectDiscoverer
 * @description 项目结构发现器 - 统一接口定义
 *
 * 每个实现负责一种构建系统/包管理器的解析。
 * Bootstrap Phase 1 通过 DiscovererRegistry 自动选择匹配的实现。
 */
export interface DiscoveredTarget {
    name: string;
    path: string;
    type: string;
    language?: string;
    framework?: string | null;
    metadata?: Record<string, unknown>;
    [key: string]: unknown;
}
export interface DiscoveredFile {
    name: string;
    path: string;
    relativePath: string;
    language: string;
    [key: string]: unknown;
}
export interface DependencyEdge {
    from: string;
    to: string;
    type: string;
    /** 依赖作用域 (如 CMake PUBLIC/PRIVATE, Gradle implementation/api) */
    scope?: string;
    /** 构建配置 (如 Gradle configuration) */
    configuration?: string;
    /** 跨语言桥接类型 (如 flutter-engine / native-module / cinterop) */
    bridgeType?: string;
}
export interface DependencyGraphLayer {
    name: string;
    order: number;
    accessibleLayers: string[];
}
export interface DependencyGraph {
    nodes: (string | {
        id: string;
        label?: string;
        type?: string;
        fullPath?: string;
        indirect?: boolean;
        /** 标签 (如 Nx tags, Bazel visibility) */
        tags?: string[];
        /** 可见性 (如 Bazel //visibility:public) */
        visibility?: string[];
        /** Convention 角色 (如 Gradle convention plugin 推断的角色) */
        conventionRole?: string;
        [key: string]: unknown;
    })[];
    edges: DependencyEdge[];
    /** 层级元数据（来自自研构建系统的分层声明） */
    layers?: DependencyGraphLayer[];
}
export declare class ProjectDiscoverer {
    /** 检测此 Discoverer 是否适用于给定项目 */
    detect(projectRoot: string): Promise<{
        match: boolean;
        confidence: number;
        reason: string;
    }>;
    /** 加载项目结构（解析配置文件、构建依赖图） */
    load(projectRoot: string): Promise<void>;
    /** 列出所有 Target/模块 */
    listTargets(): Promise<DiscoveredTarget[]>;
    /** 获取指定 Target 下的源码文件列表 */
    getTargetFiles(target: DiscoveredTarget): Promise<DiscoveredFile[]>;
    /** 获取模块间依赖关系图 */
    getDependencyGraph(): Promise<DependencyGraph>;
    /** Discoverer 标识 */
    get id(): string;
    /** 人类可读名称 */
    get displayName(): string;
}
