export declare class CostTracker {
constructor(config?: CostTrackerConfig);
track(entry: Omit<CostEntry, "cost" | "breakdown" | "timestamp">): CostEntry;
checkBudget(runId: string, sessionId?: string, userId?: string): void;
getSummary(filter?: {
agentName?: string;
userId?: string;
since?: Date;
}): CostSummary;
/**
* Check budget using in-progress (cumulative) usage without persisting an entry.
* Called during multi-roundtrip runs (e.g. tool calling) to enforce limits mid-run.
*/
checkInProgressBudget(modelId: string, cumulativeUsage: TokenUsage, runId?: string, sessionId?: string, userId?: string): boolean;
/** @deprecated Use checkInProgressBudget for mid-run checks. This now delegates to it. */
isBudgetExceeded(runId: string, sessionId?: string, userId?: string): boolean;
estimateRemaining(runId: string): {
costRemaining: number | null;
tokensRemaining: number | null;
};
getEntries(): readonly CostEntry[];
reset(): void;
}