/**
 * Cheap context-size estimation.
 *
 * Before any model invocation the loop needs a rough sense of how much of the
 * window the accumulated history occupies. A real tokenizer is provider-specific
 * and costly to run on every turn, so this module uses a coarse heuristic: it
 * serializes each turn's textual content and divides the character count by an
 * average characters-per-token ratio. The estimate is intentionally an
 * over-approximation in spirit — it errs toward triggering condensation a little
 * early rather than overflowing the window.
 */
import type { Turn } from "../../llmgateway/contract";
/**
 * Estimate the token footprint of an entire history.
 *
 * Sums the character counts of every block across every turn, converts to
 * tokens via {@link CHARS_PER_TOKEN}, and adds a small fixed surcharge per turn
 * for role/message framing. The result is a non-negative integer suitable for
 * comparison against a model's context window.
 */
export declare function estimateContextTokens(messages: readonly Turn[]): number;
