import type { Spec686Plan } from './next-spec.js';
/** Data required to build a session handoff packet (SPEC-398). */
export interface HandoffData {
    activeSpec: {
        id: string;
        title: string;
    } | null;
    nextSpec: {
        id: string;
        title: string;
    } | null;
    pendingCriteria: string[];
    gitBranch: string | null;
    gitStaged: number;
    gitModified: number;
    nextStep: string | null;
}
/** Input for the session_handoff tool (SPEC-398). */
export interface SessionHandoffInput {
    projectPath: string;
    projectId?: string;
}
/** Input for the session_checkpoint tool. */
export interface SessionCheckpointInput {
    projectPath: string;
    projectId: string;
    decisions?: string[];
    nextSteps?: string[];
}
/** SPEC-633: Per-spec session state stored in planu/state/session-{specId}.json. */
export interface SpecSessionState {
    specId: string;
    specTitle: string;
    branch: string | null;
    filesModified: string[];
    testsStatus: 'passing' | 'failing' | 'unknown';
    contextUsage: number;
    lastAction: string;
    resumePrompt: string;
    updatedAt: string;
}
/** SPEC-633: Root session.json index — points to all active per-spec sessions. */
export interface SessionIndex {
    activeSpecs: string[];
    /** SPEC-656: Per-epic progress map. Key = tag name, value = "N/M done". */
    epicProgress?: Record<string, string>;
    /** SPEC-686: Top-ranked next spec to implement, or null when nothing eligible. */
    nextSpec?: {
        id: string;
        title: string;
        reason: string;
    } | null;
    /** SPEC-686: Redundant text form of the reason for LLM readability. */
    nextSpecReason?: string;
    /** SPEC-686: Multi-spec wave orchestration plan, null when < 2 approved. */
    orchestrationPlan?: Spec686Plan | null;
    /** SPEC-686: Version counter incremented on every plan recompute. */
    planVersion?: number;
    updatedAt: string;
}
/** SPEC-639: Status of a single agent worker in the handoff.json protocol. */
export type AgentHandoffStatus = 'pending' | 'done' | 'failed';
/** SPEC-639: Entry written by a worker agent when it completes its work. */
export interface AgentHandoffEntry {
    agentId: string;
    status: AgentHandoffStatus;
    filesCreated: string[];
    filesModified: string[];
    summary: string;
    error?: string;
    updatedAt: string;
}
/** SPEC-639: Content of .planu/team/{specId}/handoff.json. */
export interface AgentTeamHandoff {
    specId: string;
    createdAt: string;
    updatedAt: string;
    agents: Record<string, AgentHandoffEntry>;
}
/** Persistent session handoff state stored in planu/session-state.json. */
export interface SessionCheckpointState {
    /** ISO timestamp when this checkpoint was created. */
    savedAt: string;
    /** IDs of specs currently in-progress (status: implementing). */
    activeSpecs: string[];
    /** Up to 5 key decisions made during this session. */
    recentDecisions: string[];
    /** Files staged in git at checkpoint time. */
    stagedFiles: string[];
    /** Pending next steps to resume in the following session. */
    nextSteps: string[];
    /** Estimated tokens used this session (if available). */
    tokensBudgetUsed?: number;
}
//# sourceMappingURL=session-checkpoint.d.ts.map