import { Observable, ObservableResult } from './Observable'; export declare enum AgentState { INITIALIZING = "INITIALIZING",// Agent is starting up and configuring IDLE = "IDLE",// Agent is ready but not processing PROCESSING = "PROCESSING",// Agent is actively processing a message/task REASONING = "REASONING",// Agent is in reasoning/planning phase EXECUTING = "EXECUTING",// Agent is executing a planned action WAITING_FOR_TOOL = "WAITING_FOR_TOOL",// Agent is waiting for tool execution WAITING_FOR_LLM = "WAITING_FOR_LLM",// Agent is waiting for LLM response ERROR = "ERROR",// Agent encountered an error PAUSED = "PAUSED",// Agent execution temporarily paused SHUTDOWN = "SHUTDOWN" } export type StateTransition = { from: AgentState; to: AgentState; timestamp: string; reason?: string; }; export declare class StateTracker extends Observable { private static instance; private currentStates; private stateHistory; private constructor(); static getInstance(): StateTracker; setState(agentId: string, newState: AgentState, reason?: string): ObservableResult; initializeAgent(agentId: string): ObservableResult; shutdownAgent(agentId: string, reason?: string): ObservableResult; private isValidTransition; private recordTransition; getCurrentState(agentId: string): AgentState | undefined; getStateHistory(agentId: string): StateTransition[]; getStateStats(agentId: string): Record; }