export type AgentLifecycleState = 'spawned' | 'running' | 'completed' | 'failed' | 'timed_out' | 'stalled';
export interface TrackedAgent {
    id: string;
    taskDescription: string;
    spawnedAt: string;
    lastHeartbeat: string | null;
    state: AgentLifecycleState;
    timeoutMs: number;
    retryCount: number;
    maxRetries: number;
    expectedDeliverables: string[];
    actualDeliverables: string[];
    completionScore: number;
    error: string | null;
    parentAgentId: string | null;
}
export interface AgentCompletionReport {
    sessionId: string;
    timestamp: string;
    totalAgents: number;
    completed: number;
    failed: number;
    stalled: number;
    timedOut: number;
    partial: number;
    agents: TrackedAgent[];
    overallScore: number;
}
export interface AgentGuaranteeConfig {
    defaultTimeoutMs: number;
    heartbeatIntervalMs: number;
    maxRetries: number;
    stallThresholdMs: number;
    blockSessionEnd: boolean;
    autoRetryOnStall: boolean;
    autoRetryOnFailure: boolean;
}
export type AgentLifecycleEventName = 'agent:spawned' | 'agent:heartbeat' | 'agent:completed' | 'agent:failed' | 'agent:stalled' | 'agent:timed_out' | 'agent:retry';
export interface AgentLifecycleEvent {
    name: AgentLifecycleEventName;
    agentId: string;
    timestamp: string;
    data?: Record<string, unknown>;
}
export interface TrackAgentOptions {
    timeoutMs?: number;
    maxRetries?: number;
    expectedDeliverables?: string[];
    parentAgentId?: string | null;
}
export interface RecoveryAction {
    action: 'retry' | 'abandon' | 'notify';
    reason: string;
    agentId: string;
}
export interface GuaranteeData {
    version: string;
    config: AgentGuaranteeConfig;
    history: AgentCompletionReport[];
    updatedAt: string;
}
export interface GuaranteeAgentCompletionInput {
    projectPath: string;
}
export interface AgentCompletionReportInput {
    projectPath: string;
    sessionId?: string;
}
export interface ConfigureAgentGuaranteesInput {
    projectPath: string;
    config: Partial<AgentGuaranteeConfig>;
}
//# sourceMappingURL=agent-guarantees.d.ts.map