import type { AgentEvent } from './AgentLoop.js'; export type AgentObserverSource = 'agent_loop' | 'multi_agent' | 'spawn_agent' | 'cron' | 'research'; export type AgentObserverStatus = 'running' | 'success' | 'error' | 'timeout' | 'cancelled'; export interface AgentObserverEvent { sessionId?: string; turnId?: string; jobId?: string; source: AgentObserverSource; eventType: string; status?: AgentObserverStatus; toolName?: string; summary?: string; payload?: Record; createdAt?: string; } export type AgentObserverListener = (event: AgentObserverEvent) => void | Promise; export declare class AgentObserverBus { private listeners; subscribe(listener: AgentObserverListener): () => void; publish(event: AgentObserverEvent): void; publishAgentEvent(source: AgentObserverSource, event: AgentEvent, context?: Pick): void; clear(): void; } export declare const agentObserverBus: AgentObserverBus; //# sourceMappingURL=AgentObserverBus.d.ts.map