import type { ClosureReason, TraceSink } from '../trace/index.js'; import type { TraceWriter } from '../trace/writer.js'; export interface ClosureTokenCounters { input: number; output: number; cacheRead: number; cacheCreation: number; } export interface ClosureSignals { dispatchReason: string; signal: AbortSignal; maxTurnsHit: boolean; hookBlocked: boolean; lastStopReason: string | undefined; sawProviderError: boolean; } export declare function deriveClosureReason(s: ClosureSignals): ClosureReason; export declare function deriveSealStatus(s: ClosureSignals): 'succeeded' | 'failed' | 'cancelled'; export interface ClosureTotals { finalTurnCount: number; finalCostUsd: number; } export interface EmitClosureInput extends ClosureSignals, ClosureTotals { runningTokens: ClosureTokenCounters; } export declare function emitClosureEvent(writer: TraceSink | undefined, input: EmitClosureInput): Promise; export interface SealTraceInput extends ClosureSignals, ClosureTotals { subagentCompletedCount: number; subagentRunningTokens: ClosureTokenCounters; subagentRunningCostUsd: number; } export declare function sealTraceWriter(writer: TraceWriter | undefined, input: SealTraceInput): Promise;