@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
39 lines • 1.49 kB
TypeScript
import { ModelUsage } from "../data/model_data.cjs";
import { ProviderStreamEvent } from "../types/types.cjs";
type EmitEventFunction = (event: ProviderStreamEvent) => Promise<void>;
type HasEventHandlerFunction = () => boolean;
export declare function setEventControllerFunctions(emitFn: EmitEventFunction, hasFn: HasEventHandlerFunction): void;
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