export type ContextTier = 'FULL' | 'TARGETED' | 'MINIMAL' | 'NONE'; export interface TierConfig { /** How often to do a FULL search (every N turns). Default: 8. */ fullSearchInterval: number; /** How often to do a MINIMAL search if no other trigger. Default: 4. */ minimalInterval: number; /** Maximum prompt length (chars) to be classified as NONE. Default: 30. */ shortPromptMaxChars: number; } export declare const DEFAULT_TIER_CONFIG: TierConfig; export interface TierResult { tier: ContextTier; tokenBudget: number; reason: string; } export type ContextFill = 'FRESH' | 'MODERATE' | 'DEPLETED' | 'CRITICAL'; /** Estimate context fill level from message count and total character volume. */ export declare function estimateContextFill(messages?: unknown[]): ContextFill; export declare class TurnTracker { private turnCount; private lastPrompt; private readonly config; constructor(config?: Partial); /** Classify the current turn and return the appropriate tier. * When messages are provided, the token budget is scaled by context fill level. */ classify(prompt: string, messages?: unknown[]): TierResult; /** Reset tracker (e.g., on new session). */ reset(): void; } //# sourceMappingURL=tiers.d.ts.map