import type { ModelProvider, ModelTelemetry, SessionTelemetry } from "./types.js";
import type { OpenRouterTokenRates } from "./openrouter.js";
export declare function estimateTokens(value: string): number;
export declare function attachTokenCost(telemetry: Omit<ModelTelemetry, "estimatedCostUsd" | "costSource">, provider: ModelProvider, model: string, openRouterRates?: OpenRouterTokenRates | null, providerCostUsd?: number | null): ModelTelemetry;
export declare function emptySessionTelemetry(): SessionTelemetry;
export declare function addTelemetryToSession(session: SessionTelemetry, telemetry: ModelTelemetry): SessionTelemetry;
export declare function estimateComparableApiCost(provider: ModelProvider, model: string, promptTokens: number, responseTokens: number, cachedPromptTokens?: number): {
    costUsd: number | null;
    source: "api-pricing" | "fallback-pricing" | "unknown";
};
