import type { SquadConfig } from './squad-loader.js';
export type AgentStatus = 'idle' | 'working' | 'delivering' | 'done' | 'checkpoint';
export type SquadStatus = 'idle' | 'running' | 'completed' | 'checkpoint';
export interface Agent {
    id: string;
    name: string;
    icon: string;
    status: AgentStatus;
    stepIndex: number;
    stepLabel: string;
    deliverTo: string | null;
    desk: {
        col: number;
        row: number;
    };
    message: string | null;
}
export interface Handoff {
    from: string;
    to: string;
    message: string;
    completedAt: string;
}
export interface SquadState {
    squad: string;
    status: SquadStatus;
    step: {
        current: number;
        total: number;
        label: string;
    };
    agents: Agent[];
    handoff: Handoff | null;
    startedAt: string | null;
    updatedAt: string;
}
/** Delay in ms between 'delivering' and 'done' to allow handoff animation */
export declare const HANDOFF_DELAY_MS = 2000;
export declare function createInitialState(config: SquadConfig): SquadState;
export declare function writeState(squadDir: string, state: SquadState): void;
export declare function readState(squadDir: string): SquadState | null;
export declare function updateAgentStatus(state: SquadState, agentId: string, status: AgentStatus): SquadState;
export declare function updateStep(state: SquadState, current: number, label: string): SquadState;
export declare function setHandoff(state: SquadState, fromId: string, toId: string, message: string): SquadState;
export declare function setSquadStatus(state: SquadState, status: SquadStatus): SquadState;
