import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { type ThreadGoal } from "./types.js"; export interface AccountingState { activeGoalId: string | null; lastAccountedAt: number | null; budgetWarningSentFor: string | null; } export interface AssistantUsage { input: number; output: number; } export interface AssistantTurnMessage { role: string; stopReason?: string; usage?: AssistantUsage; } export declare function createAccountingState(): AccountingState; export declare function assistantTurnTokens(message: AssistantTurnMessage): number; export declare function isAbortedAssistantMessage(message: AssistantTurnMessage): boolean; export declare function isToolUseAssistantMessage(message: AssistantTurnMessage): boolean; interface GoalAccountingDeps { getGoal: () => ThreadGoal | null; getAccounting: () => AccountingState; applyRuntimeAccountingTransition: (ctx: ExtensionContext, nextGoal: ThreadGoal, receiptId?: string) => void; sendMessage: ExtensionAPI["sendMessage"]; } export declare function createGoalAccounting(deps: GoalAccountingDeps): { clearActiveAccounting: () => void; beginAccounting: () => void; accountProgress: (ctx: ExtensionContext, allowBudgetSteering: boolean, completedTurnTokens?: number, accountBudgetLimited?: boolean) => void; accountSubagentUsage: (ctx: ExtensionContext, data: unknown) => void; }; export {}; //# sourceMappingURL=goal-accounting.d.ts.map