import type { CompletionRequest } from '../types/messages.js'; import type { BudgetConfig } from '../types/optimizer.js'; import { Tokenizer } from '../utils/tokenizer.js'; /** Raised when a request exceeds its input token budget and `onExceeded` is `error`, the default. */ export declare class TokenBudgetError extends Error { /** Estimated input tokens. */ tokens: number; /** The budget. */ maxTokens: number; constructor( /** Estimated input tokens. */ tokens: number, /** The budget. */ maxTokens: number); } /** Checks requests against an input token budget and applies its over-budget strategy. */ export declare class BudgetEnforcer { private tokenizer; constructor(tokenizer?: Tokenizer); /** * Estimates a request's input tokens and whether they exceed the budget, with a warning past * `warnAt`. */ check(request: CompletionRequest, config?: BudgetConfig): { warnings: string[]; exceeded: boolean; tokens: number; }; /** * Applies the budget as `onExceeded` says: `error` throws, `truncate` trims the oldest non-system * messages, and `allow` and `densify` pass the request through, densification running elsewhere. */ enforce(request: CompletionRequest, config?: BudgetConfig): CompletionRequest; private truncateToBudget; }