import type { ClosureSignals } from './closure-emitter.js'; import type { ResponseMetadata } from '../types.js'; interface TokenCounters { input: number; output: number; cacheRead: number; cacheCreation: number; } export interface AccountingSnapshot { sessionRunningCostUsd: number; sessionRunningTokens: Readonly; subagentCompletedCount: number; subagentRunningTokens: Readonly; subagentRunningCostUsd: number; } export declare class AccountingAccumulator { private sessionRunningCostUsd; private sessionRunningTokens; private lastStopReason; private maxTurnsHit; private hookBlocked; private sawProviderError; readonly sessionStartedAt: number; private subagentCompletedCount; private subagentRunningTokens; private subagentRunningCostUsd; reset(): void; recordTurnMetadata(m: ResponseMetadata): void; markHookBlocked(): void; markMaxTurnsHit(): void; markProviderError(): void; clearProviderError(): void; recordSubagentCompletion(usage?: { inputTokens?: number; outputTokens?: number; cacheReadTokens?: number; cacheCreationTokens?: number; }, costUsd?: number): void; closureSignals(signal: AbortSignal, dispatchReason: string): ClosureSignals; snapshot(): AccountingSnapshot; } export {};