/** * [WHO]: Provides pickThinkingLevelOnModelChange(), nextCyclicIndex() — pure model-cycle decisions * [FROM]: Depends on @catui/ai (Model), @catui/agent-core (ThinkingLevel) * [TO]: Consumed by core/runtime/model-controller.ts model switching/cycling * [HERE]: core/runtime/model-cycle.ts - stateless model-cycle logic, no session state * * Extracted from AgentSession: the pure decisions in setModel / cycleModel. The side-effecting * apply sequence (agent.setModel, persistence, emit) stays in the session. */ import type { Model } from "@catui/ai/types"; import type { ThinkingLevel } from "@catui/agent-core"; /** * Thinking level to use after switching to `model`, given the current level: * - model without reasoning → "off" * - reasoning model but currently "off" → "medium" (sensible default) * - otherwise keep the current level (the provider clamps to capabilities) */ export declare function pickThinkingLevelOnModelChange(model: Model, currentLevel: ThinkingLevel): ThinkingLevel; /** Next index when cycling through a list of length `length`. */ export declare function nextCyclicIndex(currentIndex: number, length: number, direction: "forward" | "backward"): number;