import type { ProjectConfig, OnboardingResult, OnboardingStep } from "../types/index.js";
import type { GitOperations } from "../git/git_deps.js";
import type { KnowledgeIndexManager } from "../knowledge/index_manager.js";
/**
 * 新人引导内部输入接口。
 * @description 封装运行引导流程所需的全部上下文，包括项目配置、路径、Git 操作实例和知识索引。
 */
export interface OnboardingInput {
    /** 项目配置对象 */
    config: ProjectConfig;
    /** 项目根目录绝对路径 */
    projectPath: string;
    /** Git 操作抽象接口 */
    gitOps: GitOperations;
    /** 知识索引管理器（可选，用于知识库复习阶段） */
    knowledgeIndex?: KnowledgeIndexManager;
    /** 指定从哪一步开始执行（可选） */
    currentStep?: OnboardingStep;
    /** 已完成的引导步骤列表（可选，用于断点续传） */
    completedSteps?: OnboardingStep[];
}
/**
 * MCP 工具层使用的公共引导入口输入接口。
 * @description 与 OnboardingInput 类似，额外支持 reset 参数以重置引导会话。
 */
export interface OnboardToolInput {
    /** 项目配置对象 */
    config: ProjectConfig;
    /** 项目根目录绝对路径 */
    projectPath: string;
    /** Git 操作抽象接口 */
    gitOps: GitOperations;
    /** 知识索引管理器（可选） */
    knowledgeIndex?: KnowledgeIndexManager;
    /** 指定从哪一步开始执行（可选） */
    currentStep?: OnboardingStep;
    /** 是否重置引导会话，清除已完成的步骤记录 */
    reset?: boolean;
}
/**
 * 执行新人引导流程的内部主函数。
 * @description 根据已完成步骤自动推进到下一个未完成的引导阶段，执行对应逻辑并更新进度。
 *              支持断点续传：如果所有步骤都已完成，直接返回最终状态。
 * @param input - 引导流程输入参数
 * @returns 引导执行结果，包含当前步骤、已完成步骤和下一步操作提示
 */
export declare function runOnboarding(input: OnboardingInput): Promise<OnboardingResult>;
/**
 * MCP 工具层（sf_onboard）的公共入口。
 * @description 处理会话恢复逻辑：若非重置模式，先尝试加载已持久化的引导进度；
 *              若为重置模式，删除会话文件后从头开始。
 * @param input - MCP 工具输入参数（包含 reset 标志）
 * @returns 引导执行结果
 */
export declare function onboard(input: OnboardToolInput): Promise<OnboardingResult>;
/**
 * 加载已持久化的引导会话进度。
 * @description 从 .soloforge/state/onboarding-session.json 读取上次完成的步骤列表，
 *              用于断点续传。文件不存在或解析失败时返回 null。
 * @param projectPath - 项目根目录路径
 * @returns 会话数据（当前步骤和已完成步骤），若不存在则返回 null
 */
export declare function loadOnboardingSession(projectPath: string): Promise<{
    current_step: OnboardingStep;
    completed_steps: OnboardingStep[];
} | null>;
//# sourceMappingURL=onboarding.d.ts.map