/** * Event System — pub/sub em tempo real sobre o ciclo de vida de um run. * * Complementa o Tracer em vez de substituí-lo: o Tracer registra spans e * persiste o RunTrace completo em disco DEPOIS que o run termina; o EventBus * notifica observadores (dashboard futuro, `izanagi run --watch`, plugins) * ENQUANTO o run ainda está executando. Um consome o outro: nada aqui é * persistido por padrão — é passageiro, do processo, como qualquer * EventEmitter. */ export type IzanagiEventName = 'run.started' | 'run.completed' | 'node.started' | 'node.completed' | 'evaluation.started' | 'evaluation.completed' | 'diagnosis.started' | 'diagnosis.completed' | 'healing.started' | 'healing.completed' | 'verification.started' | 'verification.completed' | 'quality_gate.passed' | 'quality_gate.failed' | 'task.verification.passed' | 'task.verification.failed'; export interface IzanagiEvent { name: IzanagiEventName; runId: string; at: string; data?: Record; } /** Nome coringa para observar todos os eventos de um run num só handler. */ export declare const ALL_EVENTS: "*"; export declare class EventBus { private readonly runId; private readonly emitter; constructor(runId: string); emit(name: IzanagiEventName, data?: Record): void; /** Assina um evento (ou `ALL_EVENTS` para todos). Retorna função de unsubscribe. */ on(name: IzanagiEventName | typeof ALL_EVENTS, handler: (event: IzanagiEvent) => void): () => void; once(name: IzanagiEventName | typeof ALL_EVENTS, handler: (event: IzanagiEvent) => void): void; } //# sourceMappingURL=events.d.ts.map