export type SquadAgentPhase = 'pre-implementation' | 'implementation' | 'review' | 'arbitration' | 'post-implementation';
export type SquadAgentRole = 'developer' | 'reviewer' | 'arbiter' | 'specialist';
export type SquadAgentModel = 'haiku' | 'sonnet' | 'opus';
export interface AgentTriggers {
    tags?: string[];
    specTypes?: string[];
    minScope?: string;
}
export interface AgentRegistryEntry {
    id: string;
    phase: SquadAgentPhase;
    role: SquadAgentRole;
    triggers: AgentTriggers;
    model: SquadAgentModel;
    promptTemplate: string;
    enabled: boolean;
    conflictsWith?: string[];
}
export interface AgentDispatchPlan {
    agentId: string;
    phase: SquadAgentPhase;
    model: SquadAgentModel;
    promptTemplatePath: string;
    triggerReason: string;
}
export type SquadRunVerdict = 'approved' | 'changes-requested' | 'conflict' | 'skipped';
export interface SquadRunRecord {
    agentId: string;
    phase: SquadAgentPhase;
    model: SquadAgentModel;
    verdict: SquadRunVerdict;
    summary: string;
    triggeredAt: string;
    durationMs?: number;
}
export interface SquadSpecHistory {
    specId: string;
    runs: SquadRunRecord[];
}
export interface SquadAgentOverride {
    agentId: string;
    enabled: boolean;
}
export interface SquadConfig {
    projectId: string;
    overrides: SquadAgentOverride[];
    updatedAt: string;
}
export interface SquadDispatchContext {
    specId: string;
    projectId: string;
    projectPath: string;
    specTags: string[];
    specType: string;
    specScope: string;
}
//# sourceMappingURL=agent-squad.d.ts.map