/**
 * 长任务 Job 管理 — checkpoint、heartbeat、resume/cancel、认知锚点。
 * advisory: 不 hard block，提供恢复和监控能力。
 *
 * 职责:
 * - 创建/更新/查询 job checkpoint
 * - heartbeat 检测活跃状态
 * - 从 checkpoint 恢复任务
 * - 认知锚点（上下文摘要）
 */
export interface CognitiveAnchor {
    phase: string;
    summary: string;
    key_decisions: string[];
    pending_actions: string[];
    created_at: string;
}
export interface JobCheckpoint {
    job_id: string;
    task_id: string;
    phase: string;
    heartbeat_at: string;
    checkpoint_number: number;
    cognitive_anchor: CognitiveAnchor;
    state_snapshot: Record<string, unknown>;
}
export interface JobStatus {
    job_id: string;
    task_id: string;
    is_alive: boolean;
    last_heartbeat_ms_ago: number;
    current_phase: string;
    checkpoint_count: number;
    latest_anchor: CognitiveAnchor | null;
}
export declare class JobManager {
    private stateDir;
    constructor(stateDir: string);
    /**
     * 创建新 job，分配 job_id 并写入初始 checkpoint。
     *
     * @param taskId - 任务 ID
     * @param phase - 当前阶段
     * @param initialSummary - 初始摘要
     * @returns 初始 job checkpoint
     */
    createJob(taskId: string, phase: string, initialSummary: string): Promise<JobCheckpoint>;
    /**
     * 更新 checkpoint — 记录心跳和阶段进展。
     *
     * @param jobId - Job ID
     * @param taskId - 任务 ID
     * @param phase - 当前阶段
     * @param anchor - 认知锚点更新内容
     * @param stateSnapshot - 可选的状态快照
     * @returns 更新后的 checkpoint，未找到则返回 null
     */
    updateCheckpoint(jobId: string, taskId: string, phase: string, anchor: Partial<CognitiveAnchor>, stateSnapshot?: Record<string, unknown>): Promise<JobCheckpoint | null>;
    /**
     * 心跳 — 只更新 heartbeat_at 时间戳。
     *
     * @param jobId - Job ID
     * @param taskId - 任务 ID
     * @returns 是否成功更新心跳
     */
    heartbeat(jobId: string, taskId: string): Promise<boolean>;
    /**
     * 查询 job 状态 — 包括是否活跃、距上次心跳时间。
     *
     * @param jobId - Job ID
     * @param taskId - 任务 ID
     * @param maxAgeMs - 最大存活时间（毫秒），默认 5 分钟
     * @returns Job 状态，未找到则返回 null
     */
    getJobStatus(jobId: string, taskId: string, maxAgeMs?: number): Promise<JobStatus | null>;
    /**
     * 从最新 checkpoint 恢复 — 返回 checkpoint 数据供调用方恢复状态。
     *
     * @param jobId - Job ID
     * @param taskId - 任务 ID
     * @returns 最新的 checkpoint，未找到则返回 null
     */
    resumeFromCheckpoint(jobId: string, taskId: string): Promise<JobCheckpoint | null>;
    /**
     * 取消 job — 删除所有 checkpoint 文件。
     *
     * @param jobId - Job ID
     * @param taskId - 任务 ID
     * @returns 是否成功删除
     */
    cancelJob(jobId: string, taskId: string): Promise<boolean>;
    /**
     * 列出所有活跃 job。
     *
     * @param maxAgeMs - 最大存活时间（毫秒），默认 5 分钟
     * @returns 活跃的 job 状态列表
     */
    listActiveJobs(maxAgeMs?: number): Promise<JobStatus[]>;
    /**
     * 仅凭 job_id 反查 task_id — 扫描 checkpoint 文件，返回最新一条的 task_id。
     * 用于 sf_status 在不传 task_id 时自动推导。
     *
     * @param jobId - Job ID
     * @returns 对应的 task_id，未找到则返回 null
     */
    resolveTaskId(jobId: string): Promise<string | null>;
    private getJobsDir;
    private writeCheckpoint;
    private loadLatestCheckpoint;
}
//# sourceMappingURL=job_manager.d.ts.map