@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
35 lines • 1.2 kB
TypeScript
import { ModelUsage } from "../data/model_data.cjs";
declare class CostTracker {
private entries;
private started;
private onAddUsageCallbacks;
calculateCost(usage: ModelUsage): ModelUsage;
onAddUsage(callback: (usage: ModelUsage) => void): void;
addUsage(usage: ModelUsage): ModelUsage;
getTotalCost(): number;
getCostsByModel(): Record<string, {
cost: number;
calls: number;
}>;
printSummary(): void;
getCostInTimeWindow(seconds: number): number;
getCostRate(windowSeconds?: number): number;
getUsageInTimeWindow(seconds: number): ModelUsage[];
getCostsByModelInTimeWindow(seconds: number): Record<string, {
cost: number;
calls: number;
}>;
reset(): void;
static estimateTokens(text: string): number;
addEstimatedUsage(model: string, inputText: string, outputText: string, metadata?: Record<string, unknown>): ModelUsage;
}
export declare const costTracker: CostTracker;
export { CostTracker };
export interface UsageEntry {
model: string;
input_tokens?: number;
output_tokens?: number;
image_count?: number;
timestamp?: Date;
}
//# sourceMappingURL=cost_tracker.d.ts.map