/**
 * KanbanAdapter — Thin wrapper around `hermes kanban` CLI.
 *
 * ╔════════════════════════════════════════════════════════════════════════╗
 * ║  PURPOSE (v3.0 — Refactored)                                             ║
 * ║                                                                          ║
 * ║  Replaces the old swarm.ts (368 lines) and the parallel orchestration    ║
 * ║  in dispatcher.ts with native Hermes Kanban tasks.                       ║
 * ║                                                                          ║
 * ║  Kanban = durable SQLite-backed task board shared across all Hermes      ║
 * ║  profiles. The dispatcher loop (60s default) atomically claims ready     ║
 * ║  tasks and spawns the assigned profile as its own OS process.            ║
 * ║                                                                          ║
 * ║  YOLO CONFIG (no human-in-the-loop):                                     ║
 * ║    - autoReclaim on crash/timeout                                        ║
 * ║    - maxRetries: 5 (vs default 2) before block                           ║
 * ║    - autoUnblock via admin API (no manual human intervention)            ║
 * ║    - dispatcherTick: 30s (vs default 60s — faster pickup)               ║
 * ╚════════════════════════════════════════════════════════════════════════╝
 */
export declare const YOLO_CONFIG: {
    readonly autoReclaim: true;
    readonly maxRetries: 5;
    readonly autoUnblock: true;
    readonly reclaimStaleMs: 900000;
    readonly dispatcherTickSeconds: 30;
    readonly goalModeMaxTurns: 20;
};
export interface CreateTaskOptions {
    title: string;
    assignee: string;
    body?: string;
    tenant?: string;
    parents?: string[];
    priority?: number;
    workspace?: 'scratch' | `dir:${string}` | 'worktree';
    idempotencyKey?: string;
    maxRuntime?: string;
    goalMode?: boolean;
    goalMaxTurns?: number;
    skills?: string[];
}
export interface TaskStatus {
    id: string;
    title: string;
    assignee: string;
    status: string;
    body?: string;
    tenant?: string;
    workspace?: string;
}
export interface TaskResult {
    id: string;
    status: string;
    summary?: string;
    metadata?: Record<string, unknown>;
    error?: string;
    durationMs?: number;
}
export interface TaskSummary {
    id: string;
    title: string;
    assignee: string;
    status: string;
    tenant?: string;
}
export declare class KanbanAdapter {
    private board?;
    constructor(board?: string);
    private get boardArgs();
    /**
     * Initialize the kanban board (idempotent).
     */
    init(): Promise<void>;
    /**
     * Force a dispatcher tick immediately (don't wait for the 60s loop).
     */
    nudge(): Promise<void>;
    /**
     * Create a single task.
     */
    createTask(opts: CreateTaskOptions): Promise<{
        taskId: string;
    }>;
    /**
     * Create multiple independent tasks in parallel (fan-out).
     */
    createParallelTasks(tasks: CreateTaskOptions[]): Promise<string[]>;
    /**
     * Create a pipeline (sequential chain: task[0] → task[1] → task[2]...).
     * Each task has the previous one as parent.
     */
    createPipeline(tasks: CreateTaskOptions[]): Promise<string[]>;
    /**
     * Get the status of a task.
     */
    getStatus(taskId: string): Promise<TaskStatus>;
    /**
     * Wait for a task to complete (polling loop).
     * YOLO: auto-reclaim on stale claims.
     */
    wait(taskId: string, timeoutMs?: number): Promise<TaskResult>;
    /**
     * Reclaim a task (abort running worker, reset to ready).
     */
    reclaim(taskId: string): Promise<void>;
    /**
     * Unblock a blocked task.
     */
    unblock(taskId: string): Promise<void>;
    /**
     * Archive a task.
     */
    archive(taskId: string): Promise<void>;
    /**
     * List tasks with optional filter.
     */
    listTasks(filter?: {
        status?: string;
        assignee?: string;
        tenant?: string;
    }): Promise<TaskSummary[]>;
    /**
     * Add a comment to a task (inter-agent protocol).
     */
    comment(taskId: string, body: string): Promise<void>;
    /**
     * Create a board for a specific project/workstream.
     */
    createBoard(slug: string, name: string, opts?: {
        description?: string;
        switch?: boolean;
    }): Promise<void>;
}
//# sourceMappingURL=KanbanAdapter.d.ts.map