export interface AgentDesk {
    col: number;
    row: number;
}
export type AgentStatus = 'idle' | 'working' | 'delivering' | 'done' | 'checkpoint';
export interface Agent {
    id: string;
    name: string;
    icon: string;
    status: AgentStatus;
    deliverTo: string | null;
    desk: AgentDesk;
    message?: string;
    stepIndex?: number;
    stepLabel?: string;
}
export interface Handoff {
    from: string;
    to: string;
    message: string;
    completedAt: string;
}
export type SquadStatus = 'idle' | 'running' | 'completed' | 'checkpoint';
export interface SquadState {
    squad: string;
    status: SquadStatus;
    step: {
        current: number;
        total: number;
        label: string;
    };
    agents: Agent[];
    handoff: Handoff | null;
    startedAt: string | null;
    updatedAt: string;
}
export type StateEvent = {
    type: 'squad:state';
    squadName: string;
    state: SquadState;
} | {
    type: 'agent:status';
    agentId: string;
    agentName: string;
    status: string;
    position?: {
        x: number;
        y: number;
    };
} | {
    type: 'chat:agent_dm';
    agentId: string;
    agentName: string;
    message: string;
} | {
    type: 'agent:step_start';
    squadName: string;
    agentId: string;
    agentName: string;
    stepIndex: number;
    stepLabel: string;
} | {
    type: 'agent:step_complete';
    squadName: string;
    agentId: string;
    agentName: string;
    stepIndex: number;
    stepLabel: string;
} | {
    type: 'squad:checkpoint';
    squadName: string;
    agentId: string;
    agentName: string;
    question: string;
};
export declare function diffState(squadName: string, prev: SquadState | null, next: SquadState): StateEvent[];
//# sourceMappingURL=state-parser.d.ts.map