import type { TraceWriter } from '../trace/writer.js'; import type { AccountingAccumulator } from './accounting-accumulator.js'; import type { HookRegistry } from '../hooks.js'; import type { AgentConfig } from '../types.js'; export interface ShutdownDeps { getConfig: () => AgentConfig; getAbortController: () => AbortController; getHookRegistry: () => HookRegistry | undefined; accounting: AccountingAccumulator; getTurnCount: () => number; getSessionId: () => string | undefined; ownedTraceWriter: TraceWriter | undefined; ownsTraceSeal: boolean; } export declare class SessionShutdown { private dispatched; private readonly deps; constructor(deps: ShutdownDeps); reset(): void; dispatchOnce(reason: string): Promise; }