/**
 * Aperant Framework — Team collaboration types
 *
 * Defines shared files that enable multi-user coordination via git:
 * - team.json — who's on the team (auto-detected from git)
 * - team-status/{agent-id}.json — per-agent liveness + current task (C31)
 * - roadmap/ — milestones, phases, ownership
 *
 * All shared files are plain JSON/MD so any AI CLI can read and update them.
 *
 * C34 note: the legacy `active.json` shim has been removed. The `ActiveBoard`
 * / `ActiveEntry` types below are retained because `commands/active.mjs`
 * still projects the per-agent `team-status/` records into that shape for
 * downstream consumers — but nothing is committed to git under that name.
 */
/** A team member, auto-detected from git config */
export interface TeamMember {
    /** Display name from git config user.name */
    name: string;
    /** Email from git config user.email */
    email: string;
    /** First seen timestamp (ISO 8601) */
    joined_at: string;
}
/** Team configuration — committed to git */
export interface TeamConfig {
    /** Schema version for forward compatibility */
    version: number;
    /** Whether team collaboration is enabled */
    enabled: boolean;
    /** Registered team members (keyed by email for dedup) */
    members: Record<string, TeamMember>;
}
/** A single active work entry — what someone is doing right now */
export interface ActiveEntry {
    /** Task ID from the framework task system */
    task_id: string;
    /** Human-readable description */
    description: string;
    /** Who's working on it (git user.name) */
    owner: string;
    /** Owner's email (git user.email) for dedup */
    owner_email: string;
    /** Git branch name (if auto_branch is on) */
    branch: string | null;
    /** Current phase: planning, executing, verifying, reviewing */
    phase: string;
    /** Progress as fraction (0.0 - 1.0), null if unknown */
    progress: number | null;
    /** Subtask currently being worked on */
    current_subtask: string | null;
    /** When this entry was created (ISO 8601) */
    started_at: string;
    /** Last update timestamp (ISO 8601) */
    updated_at: string;
}
/** Active work board — projected from team-status/ by commands/active.mjs (C34). */
export interface ActiveBoard {
    /** Schema version */
    version: number;
    /** Active work entries (keyed by task_id). Projected, not persisted. */
    active: Record<string, ActiveEntry>;
    /** Last update timestamp */
    updated_at: string;
}
/**
 * Canonical wire format for phase status. Note the DASH in 'in-progress' —
 * this matches the validator in apt-tools.mjs, the renderRoadmapMd icons,
 * and the live .aperant/roadmap/{scope}/milestones.json data. Do not use
 * 'in_progress' (underscore) — that spelling exists in app-side task
 * lifecycle state (apps/web, packages/backend) but is a different state
 * machine and must never leak into phase status.
 */
export type PhaseStatus = 'planned' | 'in-progress' | 'completed' | 'blocked' | 'skipped';
/** A phase within a milestone */
export interface RoadmapPhase {
    /** Phase identifier (e.g. "phase-1") */
    id: string;
    /** Human-readable title */
    title: string;
    /** What this phase accomplishes */
    description: string;
    /** Current status */
    status: PhaseStatus;
    /** Who owns this phase (name or "TBD") */
    owner: string;
    /** Phase IDs this is blocked by */
    blocked_by: string[];
    /** Key deliverables */
    deliverables: string[];
    /** Completion date if done (ISO 8601) */
    completed_at: string | null;
}
/** A milestone containing multiple phases */
export interface RoadmapMilestone {
    /** Milestone identifier (e.g. "milestone-1") */
    id: string;
    /** Human-readable title */
    title: string;
    /** What this milestone achieves */
    goal: string;
    /** Ordered phases within this milestone */
    phases: RoadmapPhase[];
}
/** Full roadmap — source of truth, ROADMAP.md is rendered from this */
export interface Roadmap {
    /** Schema version */
    version: number;
    /** Project name */
    project: string;
    /** Last update timestamp */
    updated_at: string;
    /** Ordered milestones */
    milestones: RoadmapMilestone[];
}
//# sourceMappingURL=team.d.ts.map