/**
 * rescan-internal.ts — 内部 Agent 增量扫描
 *
 * 与 rescan-external.ts（为外部 IDE Agent 生成 Mission Briefing）不同，
 * 本文件由内置 AI pipeline（fillDimensionsV3）在服务端自动完成知识补齐。
 *
 * 流程:
 *   1. snapshotRecipes — 快照保留知识
 *   2. rescanClean — 清理衍生缓存
 *   2.5 Recipe 文件 ↔ DB 一致性恢复
 *   3. Phase 1-4 全量分析（文件收集→AST→依赖→Guard→维度）
 *   4. RecipeRelevanceAuditor — 证据验证 + 快速衰退
 *   5. 计算 gap 维度（需要补齐的维度）
 *   5.5 BootstrapSessionManager — 缓存 Phase 结果供复用
 *   6. 快速返回骨架 → 异步 fillDimensionsV3 填充 gap 维度
 *   7. 前端通过 Socket.io 接收维度完成进度
 *
 * @module handlers/rescan-internal
 */
import type { RescanInput } from '#shared/schemas/mcp-tools.js';
import type { McpContext } from './types.js';
interface RescanLogger {
    info(...args: unknown[]): void;
    warn(...args: unknown[]): void;
    error(...args: unknown[]): void;
}
interface RescanMcpContext extends McpContext {
    logger: RescanLogger;
}
interface RescanInternalArgs extends RescanInput {
    /** 跳过异步填充（测试用） */
    skipAsyncFill?: boolean;
}
/**
 * rescanInternal — 内部 Agent 增量扫描
 *
 * 同步返回骨架（含 audit 摘要 + 异步会话 ID），
 * 后台通过 fillDimensionsV3 对 gap 维度执行 AI 补齐。
 */
export declare function rescanInternal(ctx: RescanMcpContext, args: RescanInternalArgs): Promise<{
    success: boolean;
    errorCode: string | null;
    message: string;
    data: {
        message: string;
    } | null;
    meta: {
        source?: string | undefined;
        responseTimeMs?: number | undefined;
        version: string;
        tool?: string | undefined;
    };
} | {
    success: boolean;
    errorCode: string | null;
    message: string;
    data: {
        rescan: {
            preservedRecipes: number;
            cleanedTables: number;
            cleanedFiles: number;
            reason: string | null;
        };
        relevanceAudit: {
            totalAudited: number;
            healthy: number;
            watch: number;
            decay: number;
            severe: number;
            dead: number;
            proposalsCreated: number;
            immediateDeprecated: number;
        };
        gapAnalysis: {
            totalDimensions: number;
            gapDimensions: number;
            skippedDimensions: string[];
            gaps: {
                dimensionId: string;
                label: string | undefined;
                existing: number;
                gap: number;
            }[];
        };
        languageStats: Record<string, number>;
        primaryLanguage: string | null;
        guardSummary: {
            totalViolations: number;
            errors: number;
            warnings: number;
        } | null;
        astSummary: {
            classes: number;
            protocols: number;
            categories: number;
        } | null;
        codeEntityGraph: {
            totalEntities: number;
            totalEdges: number;
        } | null;
        callGraph: {
            entitiesUpserted: number;
            edgesCreated: number;
        } | null;
        panorama: Record<string, unknown> | null;
        bootstrapSession: Record<string, unknown> | null;
        sessionId: string | null;
        asyncFill: boolean;
        status: string;
        files: number;
        targets: number;
    } | null;
    meta: {
        source?: string | undefined;
        responseTimeMs?: number | undefined;
        version: string;
        tool?: string | undefined;
    };
}>;
export {};
