import { Tiktoken } from "js-tiktoken";
import { LRUCache } from "lru-cache";
import OpenAI from "openai";
declare const messageTokenCache: LRUCache<string, number, unknown>;
declare const toolTokenCache: LRUCache<string, number, unknown>;
declare const imageTokenCache: LRUCache<string, number, unknown>;
declare function getCachedEncoding(model: string): Tiktoken;
declare function estimateTokens(request: OpenAI.Chat.ChatCompletionCreateParamsNonStreaming): Promise<number>;
declare function estimateTokensInTools(chatModel: string, tools: OpenAI.Chat.ChatCompletionTool[]): number;
declare function estimateTokensInMessages(chatModel: string, messages: OpenAI.Chat.ChatCompletionMessageParam[], tools?: OpenAI.Chat.ChatCompletionTool[]): Promise<number>;
export { estimateTokens, getCachedEncoding, estimateTokensInMessages, estimateTokensInTools, messageTokenCache, toolTokenCache, imageTokenCache };
