export type OrchestratorEvent = { kind: "pipeline-start"; ts: string; entityKind: "bug" | "task" | "sprint"; entityId: string; sessionId?: string; } | { kind: "phase-start"; ts: string; phase: string; phaseIndex: number; phaseCount: number; attempt: number; workflowFile: string; persona: string; } | { kind: "phase-end"; ts: string; phase: string; phaseIndex: number; attempt: number; verdict: "approved" | "revision" | "n/a" | "error" | "cancelled" | "halted"; elapsedMs: number; turns?: number; toolCount?: number; errCount?: number; subagentTranscriptPath?: string; } | { kind: "phase-loopback"; ts: string; fromPhase: string; toPhase: string; fromPhaseIndex: number; toPhaseIndex: number; reason: string; } | { kind: "pipeline-end"; ts: string; outcome: "complete" | "halted" | "cancelled" | "error"; elapsedMs: number; reason?: string; } | { kind: "notify"; ts: string; level: "info" | "warn" | "error" | "success"; message: string; }; export interface OpenOrchestratorTranscriptOpts { cwd: string; entityKind: "bug" | "task" | "sprint"; entityId: string; startedAt?: Date; sessionId?: string; } export declare class OrchestratorTranscriptWriter { readonly filePath: string; readonly startedAt: Date; private closed; constructor(opts: OpenOrchestratorTranscriptOpts); /** * Append a single event to the JSONL log. Non-fatal on write failure — * the orchestrator transcript is observability data, not load-bearing. */ record(event: OrchestratorEvent): void; close(outcome: "complete" | "halted" | "cancelled" | "error", reason?: string): void; }